use Text::CSV_XS; my $csv = Text::CSV_XS->new ({ binary => 1, auto_diag => 1 }); open my $fh, "<", $infile or die "$infile: $!\n"; while (my $row = $csv->getline ($fh)) { $row->[1] =~ tr/"\r\n"//d; my (undef, @prefinal) = split m/\\/ => $row->[1]; push @final, [ @prefinal, $row->[0], $row->[3] ]; } close $fh;