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

[V 1.04]
Date=2021-02-07T17:24:00
Comments= <<EOT
- 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*.
EOT

[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
