NAME

Catmandu::Importer::MARC - Package that imports MARC data

SYNOPSIS

# On the command line

# Convert MARC to JSON (default)
$ catmandu convert MARC < /foo/bar.mrc

# Convert MARC to MARC
$ catmandu convert MARC to MARC < /foo/bar.mrc > /foo/output.mrc

# Add fixes
$ catmandu convert MARC to MARC --fix myfixes.txt < /foo/bar.mrc > /foo/output.mrc

# Create a list of titles
$ catmandu convert MARC to TSV --fix "marc_map(245,title); retain(title)" < /foo/bar.mrc

# Convert MARC XML
$ catmandu convert MARC --type XML < /foo/bar.xml

# Convert ALEPH sequential
$ catmandu convert MARC --type ALEPHSEQ < /foo/bar.aleph

# Convert on format to another format
$ catmandu convert MARC --type ISO to MARC --type ALEPHSEQ < /foo/bar.mrc > /foo/bar.aleph

DESCRIPTION

Catmandu::Importer::MARC is a Catmandu::Importer to import MARC records from an external source. Each record is imported as HASH containing two keys:

_id

the system identifier of the record (usually the 001 field)

record

an ARRAY of ARRAYs containing the record data

EXAMPLE ITEM

{
   record => [
     [
       '001',
       undef,
       undef,
       '_',
       'fol05882032 '
     ],
     [
       '245',
       '1',
       '0',
       'a',
       'Cross-platform Perl /',
       'c',
       'Eric F. Johnson.'
     ],
   ],
   _id' => 'fol05882032'
}

METHODS

This module inherits all methods of Catmandu::Importer and by this Catmandu::Iterable.

CONFIGURATION

file

Read input from a local file given by its path. Alternatively a scalar reference can be passed to read from a string.

fh

Read input from an IO::Handle. If not specified, Catmandu::Util::io is used to create the input stream from the file argument or by using STDIN.

fix

An ARRAY of one or more fixes or file scripts to be applied to imported items.

type

The MARC format to parse. The following MARC parsers are available:

ISO: L<Catmandu::Importer::MARC::ISO> (default) - a strict ISO 2709 parser
RAW: L<Catmandu::Importer::MARC::RAW> - a loose ISO 2709 parser that skips faulty records
ALEPHSEQ: L<Catmandu::Importer::MARC::ALEPHSEQ> - a parser for Ex Libris Aleph sequential files
Lint: L<Catmandu::Importer::MARC::Lint> - a MARC syntax checker
MicroLIF: L<Catmandu::Importer::MARC::MicroLIF> - a parser for the MicroLIF format
MARCMaker: L<Catmandu::Importer::MARC::MARCMaker> - a parser for MARCMaker/MARCBreaker records
MiJ: L<Catmandu::Importer::MARC::MiJ> (MARC in JSON) - a parser for the MARC-in-JSON format
XML: L<Catmandu::Importer::MARC::XML> - a parser for the MARC XML format
skip_errors

If set, then any errors when parsing MARC input will be skipped and ignored. Use the debug setting of catmandu to view all error messages:

$ catmandu -D convert MARC --skip_errors 1 < /foo/bar.mrc
<other>

Every MARC importer can have its own options. Check the documentation of the specific importer.

SEE ALSO

Catmandu::Exporter::MARC