use strict; use warnings; use Text::CSV_XS; my $file = "/orion-reqs/SaferHtml/CradleCSV/2012_03_30/Doc_Sections_SAFER_Group_Trace.csv"; open my $fh, "<:encoding(utf-8)", $file or die "$file: $!"; my $csv = Text::CSV_XS->new ({ binary => 1, auto_diag => 1 }); $csv->column_names ($csv->getline ($fh)); my $data = $csv->getline_hr_all ($fh); close ($fh);