logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

MARC::File::MicroLIF - MicroLIF-specific file handling

Author

       Andy Lester, "<andy@petdance.com>"

perl v5.36.0                                       2022-10-13                          MARC::File::MicroLIF(3pm)

Export

       None.

       The buffer must be large enough to handle any valid record because we don't check for cases like a CR/LF
       pair or an end-of-record/CR/LF trio being only partially in the buffer.

       The max valid record is the max MARC record size (99999) plus one or two characters per tag (CR, LF, or
       CR/LF).  It's hard to say what the max number of tags is, so here we use 6000.  (6000 tags can be
       squeezed into a MARC record only if every tag has only one subfield containing a maximum of one
       character, or if data from multiple tags overlaps in the MARC record body.  We're pretty safe.)

License

       This code may be distributed under the same terms as Perl itself.

       Please note that these modules are not products of or supported by the employers of the various
       contributors to the code.

Methods

in()
       Opens a MicroLIF file for reading.

       Gets the next chunk of data.  If $want_line is true then you get the next chunk ending with any
       combination of \r and \n of any length.  If it is false or not passed then you get the next chunk ending
       with \x60 followed by any combination of \r and \n of any length.

       All trailing \r and \n are stripped.

   header()
       If the MicroLIF file has a file header then the header is returned.  If the file has no header or the
       file has not yet been opened then "undef" is returned.

   decode()
       Decodes a MicroLIF record and returns a USMARC record.

       Can be called in one of three different ways:

           $object->decode( $lif )
           MARC::File::MicroLIF->decode( $lif )
           MARC::File::MicroLIF::decode( $lif )

Name

       MARC::File::MicroLIF - MicroLIF-specific file handling

Synopsis

           use MARC::File::MicroLIF;

           my $file = MARC::File::MicroLIF->in( $filename );

           while ( my $marc = $file->next() ) {
               # Do something
           }
           $file->close();
           undef $file;

Todo

See Also