Revision history for Perl extension Text::CSV_PP::Iterator. 1.04 2021-02-07T17:24:00 - Adopt new repo structure. See http://savage.net.au/Ron/html/My.Workflow.for.Building.Distros.html. - Update POD to change RT to github. - Reformat Makefile.PL. - Add t/00*. 1.03 2010-02-21T12:56:32 - Remove text 'All rights reserved' (for Debian licensing). - Remove POD heads 'Required Modules' and 'Changes'. 1.02 2010-02-10T13:53:06 - Add META.yml. Update MANIFEST.SKIP. Add MANIFEST and MYMETA.yml. 1.01 2009-02-05T16:44:50 - Add Exception::Class and Iterator to the list of dependencies in Build.PL and Makefile.PL :-(. - Reformat these 2 files now that I use Emacs. - Rename Changes.txt to CHANGES, since some CPAN tools refuse to recognize Changes.txt 1.00 2007-06-19T16:30:45 - Original version - Points of interest: o Text::CSV_PP::Iterator reads the file for you, using Iterator::IO. Warning: Iterator::IO V 0.02 has 3 bugs in it, where it does not call throw() properly. I've reported this via http://rt.cpan.org o All of Text::CSV_PP's new() parameters are supported by the fact that Text::CSV_PP::Iterator subclasses Text::CSV_PP o All data is returned as a hashref just like DBI's fetchrow_hashref(), using Text::CSV_PP::Iterator's only method, fetchrow_hashref() o The module reads the column headers from the first record in the file, or ... o The column headers can be passed in to new() if the file has none o Non-existent file errors throw the exception Iterator::X::IO_Error, which stringifies to a nice error message if you don't catch it o EOF returns undef to allow this neat construct: while ($hashref = $parser -> fetchrow_hashref() ){...} o Dependencies: - Iterator::IO - Text::CSV_PP o Example code: t/test.t demonstrates: - How to call fetchrow_hashref in isolation and in a loop - How to call fetchrow_hashref in eval{...} and catch exceptions