Just out of curiosity - what was your main motivation for writing
another MARC module?
In what ways does your distribution differ from MARC::Record?

Moose Object-Oriented code reusability. I can clearly (hope so) distinguish Marc record manipulation, parsing, converting, formatting, reading, writing. Take a look at Moose if you don't have already:

  http://www.iinteractive.com/moose/

For example, if I need to read a set of Marc records from a ISO2709 file, I do that:

  my $reader = Marc::Reader::File->new(
    file => 'foo.iso';
    parser => Marc::Parser::Iso2709->new() );
  while ( my $record = $reader->read() ) {
    ;
  }

The same thing for a Marcxml file is just:

  my $reader = Marc::Reader::File->new(
    file => 'foo.xml';
    parser => Marc::Parser::Marcxml->new() );

Similarly I also can have a reader grabbing Marc records directly from an ILS, let's say Koha:

  my $reader = Marc::Reader::KohaIls->new(
    conf => '/etc/koha-conf.xml',
    select => 'all' );

So with this library is a mean (for me) to write more OO code manipulating MARC records.
--
Frédéric

Reply via email to