perl -MData::Dumper -wle '$_="a,b,c,,,d,e"; print Dumper [split m/,/, $_, 3]' $VAR1 = [ 'a', 'b', 'c,,,d,e' ]; #### open (OUT, ">", "file.csv" or die "Can't read file.csv: $!"; while (my $line = ){ chomp $line; my @records = split m/,/, $line, 10; # do your work here }