Recently became involved with Regular Expressions and, while experimenting with Perl scripts using Text::ParseWords, I came up with a script containing the following code: I read a file with the CSV text line: "earth",1,,"moon",9.374
use Text::ParseWords; @fields = (); my $file = $ARGV[0] or die "Missing CSV file on the command line\n"; open($text, '<', $file) or die "Could not open '$file' $!\n"; $line = <$text>; @fields = quotewords(',', 0, $line); foreach $field (0..$#fields) { print $field + 1 . " $fields[$field]\n"; }
#------------------------------------ The above works fine and prints: 1 earth 2 1 3 4 moon 5 9.374 #=================================================================== However, if I try the following,
my $file = $ARGV[0] or die "Missing CSV file on the command line\n"; open($text, '<', $file) or die "Could not open '$file' $!\n"; while ($line = <$text>) { @fields = quotewords(',', 0, $line); } foreach $field (0..$#fields) { print $field + 1 . " $fields[$field]\n"; }
it only prints: 1 What am I missing here?
In reply to Parsing CSV file by Joma
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |