jorol / MARC-Parser-RAW

Parser for raw MARC data. Optimized for Catmandu

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NAME

MARC::Parser::RAW - Parser for ISO 2709 encoded MARC records

Build Status Coverage Status Kwalitee Score

SYNOPSIS

use MARC::Parser::RAW;

my $parser = MARC::Parser::RAW->new( $file );

while ( my $record = $parser->next() ) {
    # do something        
}

DESCRIPTION

MARC::Parser::RAW is a lightweight, fault tolerant parser for ISO 2709 encoded MARC records. Tags, indicators and subfield codes are not validated against the MARC standard. Record length from leader and field lengths from the directory are ignored. Records with a faulty structure will be skipped with a warning. The resulting data structure is optimized for usage with the Catmandu data tool kit.

MARC::Parser::RAW expects UTF-8 encoded files as input. Otherwise provide a filehande with a specified I/O layer or specify encoding.

MARC

The MARC record is parsed into an ARRAY of ARRAYs:

$record = [
        [ 'LDR', undef, undef, '_', '00661nam  22002538a 4500' ],
        [ '001', undef, undef, '_', 'fol05865967 ' ],
        ...
        [   '245', '1', '0', 'a', 'Programming Perl /',
            'c', 'Larry Wall, Tom Christiansen & Jon Orwant.'
        ],
        ...
    ];

METHODS

new($file|$fh|$scalarref [, $encoding])

Configuration

  • file

    Path to file with raw MARC records.

  • fh

    Open filehandle for raw MARC records.

  • scalarref

    Reference to scalar with raw MARC records.

  • encoding

    Set encoding. Default: UTF-8. Optional.

next()

Reads the next record from MARC input stream. Returns a Perl hash.

_decode($record)

Deserialize a raw MARC record to an ARRAY of ARRAYs.

_field($field)

Split MARC field string in individual components.

AUTHOR

Johann Rolschewski jorol@cpan.org

COPYRIGHT

Copyright 2014- Johann Rolschewski

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEEALSO

Catmandu, Catmandu::Importer::MARC.

ACKNOWLEDGEMENT

The parser methods are adapted from Marc Chantreux's MARC::MIR module.

About

Parser for raw MARC data. Optimized for Catmandu

License:Other


Languages

Language:Perl 100.0%