SPUG: Slice of an arrary within a hash?
Rob Garrett
robg at techie.com
Fri May 5 13:04:31 CDT 2000
Good morning -
I'd appreciate a little help understanding the
behavior of the following script.
I've included 3 versions of the same script
which are identical except for the subset of
lines which have been commented out.
The first example is producing the results I
want but I was trying to streamline the logic.
Thanks for your help.
Rob
- - - - - - - - - - - - - - - Version 1
#!/usr/bin/perl
%DATA;
$dsku = 'fred';
@prices = ('11.11','22.22','33.33','44.44');
$DATA{$dsku}[0] = '00.00';
#$DATA{$dsku}[1 .. 4] = @prices[0 .. 3];
#$DATA{$dsku}[1,2,3,4] = @prices[0,1,2,3];
$DATA{$dsku}[1] = @prices[0];
$DATA{$dsku}[2] = @prices[1];
$DATA{$dsku}[3] = @prices[2];
$DATA{$dsku}[4] = @prices[3];
$DATA{$dsku}[5] = '55.55';
for ( my $i = 0; $i < 6; $i++ )
{
print "\$DATA{\$sku}[$i] = '$DATA{$dsku}[$i]'\n";
}
====>
$DATA{$sku}[0] = '00.00'
$DATA{$sku}[1] = '11.11'
$DATA{$sku}[2] = '22.22'
$DATA{$sku}[3] = '33.33'
$DATA{$sku}[4] = '44.44'
$DATA{$sku}[5] = '55.55'
- - - - - - - - - - - - - - - Version 2
#!/usr/bin/perl
%DATA;
$dsku = 'fred';
@prices = ('11.11','22.22','33.33','44.44');
$DATA{$dsku}[0] = '00.00';
$DATA{$dsku}[1 .. 4] = @prices[0 .. 3];
#$DATA{$dsku}[1,2,3,4] = @prices[0,1,2,3];
#$DATA{$dsku}[1] = @prices[0];
#$DATA{$dsku}[2] = @prices[1];
#$DATA{$dsku}[3] = @prices[2];
#$DATA{$dsku}[4] = @prices[3];
$DATA{$dsku}[5] = '55.55';
for ( my $i = 0; $i < 6; $i++ )
{
print "\$DATA{\$sku}[$i] = '$DATA{$dsku}[$i]'\n";
}
====>
$DATA{$sku}[0] = '44.44'
$DATA{$sku}[1] = ''
$DATA{$sku}[2] = ''
$DATA{$sku}[3] = ''
$DATA{$sku}[4] = ''
$DATA{$sku}[5] = '55.55'
- - - - - - - - - - - - - - - Version 3
#!/usr/bin/perl
%DATA;
$dsku = 'fred';
@prices = ('11.11','22.22','33.33','44.44');
$DATA{$dsku}[0] = '00.00';
#$DATA{$dsku}[1 .. 4] = @prices[0 .. 3];
$DATA{$dsku}[1,2,3,4] = @prices[0,1,2,3];
#$DATA{$dsku}[1] = @prices[0];
#$DATA{$dsku}[2] = @prices[1];
#$DATA{$dsku}[3] = @prices[2];
#$DATA{$dsku}[4] = @prices[3];
$DATA{$dsku}[5] = '55.55';
for ( my $i = 0; $i < 6; $i++ )
{
print "\$DATA{\$sku}[$i] = '$DATA{$dsku}[$i]'\n";
}
====>
$DATA{$sku}[0] = '00.00'
$DATA{$sku}[1] = ''
$DATA{$sku}[2] = ''
$DATA{$sku}[3] = ''
$DATA{$sku}[4] = '44.44'
$DATA{$sku}[5] = '55.55'
______________________________________________
FREE Personalized Email at Mail.com
Sign up at http://www.mail.com/?sr=signup
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
POST TO: spug-list at pm.org PROBLEMS: owner-spug-list at pm.org
Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/
SUBSCRIBE/UNSUBSCRIBE: Replace "action" below by subscribe or unsubscribe
Email to majordomo at pm.org: "action" spug-list your_address
More information about the spug-list
mailing list