I have updated MARC::Lint again (in SourceForge CVS). Changes to the main module include the addition of check_020, which validates ISBNs using Business::ISBN and a new internal sub for 13 digit ISBNs, based on code from Business::ISBN's EAN-related methods.

Also, a check for subfield indicators (\x1F) in fields lower than 010. I initially thought this might have been covered in MARC::File::USMARC. It makes some sense that it is not, as that may allow those with records containing \x1F in these fields to remove them by retrieving the field data, stripping the subfield indicator and subfield code, and replacing the field with new data (I haven't tested this method yet).

The MARC::Lint package has new tests for the above changes, including camel.usmarc, to which I added a record containing a subfielded 007 field. I think I modified the MANIFEST and Makefile.PL files correctly, but am unable to test these on my own system.

I have updated my MARC::Lintadditions, on my personal site, as well:

-Revision of check_020() in preparation for move to MARC::Lint.
-Moved check_020() to MARC::Lint (remains here during testing).
-validate007() revised to deal with possibility of subfields existing in pre-010 fields, or other non-legitimate 1st characters existing.


-----------------

A few months ago, there was discussion about non-numeric tags in records. In MARC::File::USMARC, the example filter sub is currently:
sub filter {
my ($tagno,$tagdata) = @_;


        return ($tagno == 245) || ($tagno >= 600 && $tagno <= 699);
    }

Should there be a check for numeric tags before using a numeric comparison?

I know that MARC::Lint will likely fail on records with non-numeric tags. Should it be modified to take such tags into account?

--
Thank you,

Bryan Baldus
[EMAIL PROTECTED]
[EMAIL PROTECTED]
http://home.inwave.com/eija

Reply via email to