Changes for version 2.0

  • THINGS THAT MAY BREAK YOUR CODE
    • Perl 5.8.2 required for utf8 handling
  • ENHANCEMENTS
    • removed dead utf8 handling code
    • added MARC::File::Encode wrapper around Encode module since Encode exports encode() by default which conflicts with existing MARC::File::Encode::encode (yuck).
    • added MARC::Record::encoding() for getting/setting record encoding
    • modified t/utf8.t to unconditionally do tests since a modern perl will now be required.
    • Added --hex switch to marcdump, which dumps the record in hexadecimal. The offsets are in decimal so that you can match them up to values in the leader. The offset is reset to 0 when we're past the directory so that you can match up the data with the offsets in the directory.
    • docfixes in Record.pm (thanks Todd Holbrook)
    • added MARC::Field->delete_subfields

Changes for version 1.39_02 - 2004-12-21

  • THINGS THAT MAY BREAK YOUR CODE
    • Removed the ability to call new from an instance of MARC::Record or MARC::Field. Any place where you might have code like:
      • my $rec = MARC::Record->new(); ... my $another = $rec->new();
      • will have to be changed to:
        • my $rec = MARC::Record->new(); ... my $class = ref( $rec ); my $another = $class->new();
      • or:
        • my $rec = MARC::Record->new(); ... my $another = MARC::Record->new();
    • Removed MARC::Lint and the marclint utility to a separate package on CPAN.
    • MARC::Doc::Tutorial.pod updated to reflect the change.
    • Fixed t/50.batch.t to use File::Spec in the MicroLIF section
    • Other tests in t/ also use File::Spec to specify paths
    • MARC::File::USMARC ignores \x1a, the DOS end-of-file character, between records and at the end of files.
    • Added corresponding tests dosEOF.t, cameleof.usmarc, and sample1eof.usmarc.
  • FIXES
    • Clarified docs on the interface to field(), and fixed problem whereby in scalar context if no match was found we were returning an empty list instead of undef. Strictly speaking, this is an interface change, but in practice anyone making this call in a scalar context was going to get 0, which if used as a MARC::Field would bomb. We therefore don't expect the change to affect anything that wasn't already blowing up.
    • Fixed the doc and example for MARC::Field::subfields() so that they match the behavior of the function, namely returning a list rather than a list ref.
    • Fixed behavior of MARC::Batch::next() to not reset warnings on the MARC::Record object that it returns. Also added test to t/75.warnings.t
    • Added code to MARC::MicroLIF::decode() to change line endings to those of the platform before decoding the passed-in string. Also added test to t/81.decode.t
    • Turned off utf8 handling until it can safely be done without converting all MARC data to utf8.
    • Made marcdump respect --noquiet as documented.
  • ENHANCEMENTS
    • added MARC::Field::delete_subfields() and tests to t/67.subfield.t
    • Added tests to make sure that MARC::Record::leader() adds warnings if called as a setter with data that isn't the right length.
    • Added explicit tests for convenience function behavior (title(), edition(), etc.) when there's no data.
    • Added test to verify insert_fields_before() behavior when the field to insert before isn't in the record.
    • Added tests to MARC::Field::indicator() to make sure that when called on a control field the return is undef.

Changes for version 1.39_01 - 2004-07-26

  • ENHANCEMENTS
    • Support for UTF8 in Perls >= 5.8.1. When using a utf8 friendly Perl all file streams will be opened in utf8 mode, and the bytes pragma will be used to create and use direcotry byte offsets.
    • Added MARC::File::Utils which contains utf8 safe functions.
    • marcdump now sets STDOUT to utf8 if it is able to.
    • t/utf8.t is no longer skipped.
    • removed redundant record length check in MARC::File::USMARC::_next() and adjusted tests in t/75.warnings.t
    • All tests run under -T.

Documentation

MARC record dump utility
A documentation-only module for new users of MARC::Record

Modules

Perl module for handling files of MARC::Record objects
Perl extension for handling MARC fields
Base class for files of MARC records
Encode wrapper for MARC::Record
MicroLIF-specific file handling
USMARC-specific file handling
Perl extension for handling MARC records