The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

PICA::Parser::Base - abstract base class of PICA parsers

SYNOPSIS

    use PICA::Parser::Plain;
    my $parser = PICA::Parser::Plain->new( $filename );

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

    use PICA::Parser::Plus;
    my $parser = PICA::Parser::Plus->new( $filename );
    ... # records will be instances of PICA::Data

    use PICA::Parser::XML;
    my $parser = PICA::Parser::XML->new( $filename, start => 1 );
    ...

DESCRIPTION

This abstract base class of PICA+ parsers should not be instantiated directly. Use one of the following subclasses instead:

PICA::Parser::Plain
PICA::Parser::Plus
PICA::Parser::Binary
PICA::Parser::XML
PICA::Parser::PPXML
PICA::Parser::JSON

CONFIGURATION

strict

By default faulty fields in records are skipped with warnings. You can make them fatal by setting the strict parameter to 1.

annotate

By default some parsers also support annotated PICA. Set to true to enforce field annotations or to false to forbid them.

METHODS

new( [ $input | fh => $input ] [ %options ] )

Initialize parser to read from a given file, handle (e.g. IO::Handle), or reference to a Unicode string. PICA::Parser::XML also detects plain XML strings.

next

Reads the next PICA+ record. Returns a PICA::Data object (that is a blessed hash with keys record and optional _id).

SEE ALSO

See Catmandu::Importer::PICA for usage of this module in Catmandu.

Alternative PICA parsers had been implemented as PICA::PlainParser and PICA::XMLParser and included in the release of PICA::Record (DEPRECATED).