[Module]
Name=Text::CSV_PP::Iterator
Changelog.Creator=Module::Metadata::Changes V 1.08 Changelog.Parser=Config::IniFiles V 2.57

[V 1.03]
Date=2010-02-21T12:56:32
Comments= <<EOT
- Remove text 'All rights reserved' (for Debian licensing). - Remove POD heads 'Required Modules' and 'Changes'. EOT

[V 1.02]
Date=2010-02-10T13:53:06
Comments=- Add META.yml. Update MANIFEST.SKIP. Add MANIFEST and MYMETA.yml.

[V 1.01]
Date=2009-02-05T16:44:50
Comments= <<EOT
- 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 EOT

[V 1.00]
Date=2007-06-19T16:30:45
Comments= <<EOT
- 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 EOT