my $csv = Text::CSV_XS->new ({ binary => 1, auto_diag => 1 });
open my $fh2, "<:encoding(utf8)", $file or die "$file: $!";
my $columns = $csv->getline ($fh2);
for (@$columns) { s/^\s+//; s/\s+$//; }
my %row;
$csv->bind_columns (\@row{@$columns});
while ($csv->getline ($fh2)) {
process_row (\%row);
}