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()関数で返せるようにすればいいだけの話で。それだけでどれだけの人が助かるかと。
こういうのは簡単なデザインチョイスなのになぁ。
コメント