my $csv = Text::CSV_XS->new ({ binary => 1, auto_diag => 1 }); open my $fh, "<:encoding(iso-8859-1)", "file.csv"; $csv->header ($fh); while (my $row = $csv->getline_hr ($fh)) { ... }