Text::CSV::Simple、はじめて使いました。
my $parser = Text::CSV::Simple->new({ binary => 1 });
$parser->field_map(qw/id name item_cd state/);
my @items = $parser->read_file("items.csv");
日本語が文字化けしてて、“binary => 1"のオプションに気づくのに20分かかりました。読み込むときにfield_mapで指定したカラム名つけてハッシュにしてくました。
以上、よろしくお願いします。