John W. Krahn wrote:
On Thursday 01 July 2004 14:30, Rob Benton wrote:
I'm looking for a little help here. I'm not understanding exactly what's wrong with this code:
=============================================================== #!/usr/bin/perl -w
use strict;
open IN, "<comma.txt" or die "$!\n";
my %rows;
while (<IN>) { chomp; my @fields = split( /,/, $_); $rows{$fields[2]} = [ ($fields[3]..$fields[-1]) ]; print "array: "; print "@{$rows{$fields[2]}}\n"; }
close IN; ===========================================================
This prints nothing for the array. If I replace the scalars inside [ () ] with literal strings or numbers it works. What the correct way to do what I'm attempting. Am I just quoting wrong?
The value in $fields[3] has to be less than or equal to the value in $fields[-1] for the range operator to produce a non-empty list. Perhaps you want an array slice instead?
$rows{ $fields[2] } = [ @fields[ 3 .. $#fields ] ]; print "array: @fields[3..$#fields]\n";
John
Thanks guys.
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>
