Text::CSV_XSの使用で大分詰まっていたのです。一体なんで



use Text::CSV_XS;

my $csv = Text::CSV_XS->new({ binary => 1});
while (<>) {
$csv->parse($_) or die $csv->error_input;
my @fields = $csv->fields;
}

がエラーになるのかわからず、頭を抱え込んでしまってた。ようやく気づいたのは色々Perl内で試してみて、最終的にvimでCSVファイルを開けたところ。改行に\rが入ってる!うはー。


これの何が問題って、エラーを吐いた行の内容はerror_input()で取得できるのにも関わらず、どういうエラーだったのか全くわからないのが問題。こんなの、どうせエラーを吐くならcroakするとか、エラーの内容をerror()関数で返せるようにすればいいだけの話で。それだけでどれだけの人が助かるかと。


こういうのは簡単なデザインチョイスなのになぁ。