in reply to Text::CSV and getline_hr_all
Get Text::CSV_XS and use it's csv function:
use Text::CSV_XS qw( csv ); my $aoh = csv (in => $file, headers => "auto", sep => "|", allow_white +space => 1); [download]