$splitArray[0] = 1, $splitArray[1] = Hugo, Inc. $splitArray[2] = ,4, $splitArray[3] = This is a test $splitArray[4] = ,34.5,17.9, $splitArray[5] = Marc, Cindy and Rob #### use strict; my $row = "1, \"Hugo, Inc.\", 4, \"This is a test\", 34.5, 17.9, \"Marc, Cindy and Rob\""; print "ROW: $row\n"; my @splitArray = split '\"', $row; my @answerArray; for ( my $i = 0 ; $i <= $#splitArray ; $i++ ) { my @tempArray; if ( $i % 2 == 0 ) # if $i is even { @tempArray = split ',', $splitArray[$i]; } else # if $i is odd { @tempArray = ( $splitArray[$i] ); } # Shove all of @tempArray into @answerArray while ( @tempArray ) { if ( $i % 2 == 0 ) { $tempArray[0] =~ s/ //g; } if ( $tempArray[0] =~ /\S/ ) { push @answerArray, shift @tempArray; } else { shift @tempArray; } } } foreach my $answer ( @answerArray ) { print "$answer\n"; }