http://www.perlmonks.org?node_id=693726


in reply to The future of Text::CSV_XS - TODO

Hello H.Merijn. Is it possible to make this a recoverable error? "HR - bind_columns () did not pass enough refs for parsed fields"

I know some rows will be too short. I just want to skip them or log them and move on. Or maybe there's a a way I can "pre-test" them before calling getline()?

Replies are listed 'Best First'.
Re^2: The future of Text::CSV_XS - TODO
by Tux (Canon) on Jun 25, 2008 at 07:15 UTC

    Text::CSV_XS comes with examples. There is csv-check and parser-xs.pl. Both show ways to parse (broken) CSV files reliably. Take the latter as an example.

    Making fatal errors recoverable is very hard, as the module does not buffer. Once the stream has been read, it is hard to backup in it. You can still probably use $csv->error_input () after a caught eval'ed failure.


    Enjoy, Have FUN! H.Merijn