use strict; use warnings; use Text::ParseWords; while (my $line = ) { my @fields = quotewords(',', 0, $line); for my $field (0 .. $#fields) { print $field + 1, " $fields[$field]\n"; } } __DATA__ "earth",1,,"moon",9.374 "mars",2,,"phobos",,"deimos",