#solution 1, using regex and parsewords use Text::ParseWords; my $file = "zs_PS0001_9_epack_2006b.csv"; open(FILE,"<$file") or die("Could not open $file: $!."); $count = 0; # Process the data. while (){ # Line used to debug the script taking only a few lines. exit if ($count >= 20); #print "=========================== Record $count\n"; $count++; print "myCounter: ", $count , "\n"; @words= $_ =~ m/"[^"\r\n]*"|[^,\r\n]*/mg; @result = "ewords(',', 0, @words ); #build the array for the database command #@myArray=($result[0],$result[2],$result[4],$result[6],$result[8],$result[10],$result[12],$result[14],$result[16],$result[18]); my $courseID=$result[0]; my $sessionID=$result[1]; my $userID=$result[2]; my $PersonID=$result[3]; my $mydatetime=$result[4]; my $millisecond=$result[5]; my $loc=$result[6]; my $action=$result[7]; my $page=$result[8]; my $time=$result[9]; print STDOUT "result: ", $courseID,"\n"; print STDOUT "result: ", $sessionID,"\n"; print STDOUT "result: ", $userID,"\n"; print STDOUT "result: ", $PersonID,"\n"; print STDOUT "result: ", $mydatetime,"\n"; print STDOUT "result: ", $millisecond,"\n"; print STDOUT "result: ", $loc,"\n"; print STDOUT "result: ", $action,"\n"; print STDOUT "result: ", $page,"\n"; print STDOUT "result: ", $time,"\n"; print STDOUT "***********\n"; } # end solution 1_______________________