my $csv = Text::CSV_XS->new ({ binary => 1, escape_char => "\\", allow_loose_quotes => 1, auto_diag => 1, }); open my $fh, "<:encoding(utf-8)", "text.csv" or die "text.csv: $!"; $csv->getline ($fh); # skip first line while (my $row = $csv->getline ($fh)) { my ($tri, $chem, $year, $lbs, $gms) = map { undiacritic ($_) } @{$row}[0,2,4,5,6]; : : } close $fh;