Revision history for Perl extension Text::CSV_PP::Iterator. 1.03 Sun Feb 21 12:56:32 2010 - Remove text 'All rights reserved' (for Debian licensing). - Remove POD heads 'Required Modules' and 'Changes'. 1.02 Wed Feb 10 13:53:06 2010 - Add META.yml. Update MANIFEST.SKIP. Add MANIFEST and MYMETA.yml. 1.01 Thu Feb 5 16:44:50 2009 - 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 Tue Jun 19 16:30:45 2007 - 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