use Text::CSV_XS; open my $fh, "<", "file.tsv"; my $csv = Text::CSV_XS->new ({ binary => 1, sep_char => "\t", auto_diag => 1 }); while (my $row = $csv->getline ($fh)) { # … } close $fh;