Provided by: libmarc-loader-perl_0.004001-2_all
NAME
MARC::Loader - Perl module for creating MARC record from a hash
VERSION
Version 0.004001
SYNOPSIS
use MARC::Loader; my $foo={ 'ldr' => 'optionnal_leader', 'cleannsb' => 1, 'f005' => [ { 'f005_' => 'controlfield_contenta' }, { 'f005_' => 'controlfield_contentb' } ], 'f006_' => 'controlfield_content', 'f010d' => '45', 'f099c' => '2011-02-03', 'f099t' => 'LIVRE', 'i0991' => '3', 'i0992' => '4', 'f200a' => "\x88le \x89titre", '001##f101a' => ['lat','fre','spa'], 'f215a' => [ 'test' ], 'f700' => [ { 'f700f' => '1900-1950', 'f700a' => 'ICHER', 'f700b' => ['jean','francis'] }, { 'f700f' => '1353? - 1435', 'f700a' => 'PAULUS', 'f700b' => 'MARIA'} ], 'f995' => [ { 'f995e' => 'S1', 'f995b' => 'MP', 'f995f' => '8002-ex' }, { '001##f995e' => 'S2', '002##f995b' => 'MP', '005##f995f' => '8001-ex' } ] }; my $record = MARC::Loader->new($foo); # Here, the command "print $record->as_formatted;" will return : # LDR optionnal_leader # 005 controlfield_contenta # 005 controlfield_contentb # 006 controlfield_content # 101 _afre # _alat # _aspa # 010 _d45 # 099 34 _c2011-02-03 # _tLIVRE # 200 _ale titre # 215 _atest # 700 _aICHER # _bfrancis # _bjean # _f1900-1950 # 700 _aPAULUS # _bMARIA # _f1353? - 1435 # 995 _bMP # _eS1 # _f8002-ex # 995 _eS2 # _bMP # _f8001-ex
DESCRIPTION
This is a Perl module for creating MARC records from a hash variable. MARC::Loader use MARC::Record. Hash keys naming convention. The names of hash keys are very important. They must begin with letter f followed by the 3-digit field name ( e.g. f099), followed, for the subfields, by their letter or digit ( e.g. f501b). Repeatable fields are arrays of hash ( e.g., 'f700' => [{'f700f' => '1900','f700a' => 'ICHER'},{'f700f' => '1353','f700a' => 'PAULUS'}] ). Repeatable subfields are arrays ( e.g., 'f101a' => [ 'lat','fre','spa'] ). Controlfields are automatically detected when the hash key begin with letter f followed by 3-digit lower than 10 followed by underscore ( e.g. f005_). Indicators must begin with the letter i followed by the 3-digit field name followed by the indicator's position (1 or 2) : e.g. "i0991". Record's leader can be defined with the hash key 'ldr' ( e.g., 'ldr' => 1 ). reorder fields and subfields Fields and subfields are in lexically order. If you want reorder fields and subfields differently, you can add a reordering string (necessarily followed by ##) at the beginning of hash keys (e.g., to reorder the subfields of f995 to have $e followed by $b : 'f995' => [{'001##f995e' => 'S2','002##f995b' => 'MP')]};). If you want to reorder fields, please note that the controlfields will always be located before the other (e.g., if you define '001##f101a' => [ 'lat','fre','spa'] , the f101 will be placed after the last controlfield ). Be careful, the reorder is made lexically, not numerically : 10 will be placed before 2, while 002 will be placed before 010. If the script you use to build your hash requires you to precede fields AND subfields with a reordering string when you want to reorder only those sub-fields, you can force the module to reorder the fields in alphabetical order with an hash key named 'orderfields' ( e.g., 'orderfields' => 1 ). You can also remove non-sorting characters with an hash key named 'cleannsb' ( e.g., 'cleannsb' => 1 ).
METHOD
new() • $record = MARC::Loader->new($foo); This is the only method provided by the module.
AUTHOR
Stephane Delaune, (delaune.stephane at gmail.com)
COPYRIGHT
Copyright 2011 Stephane Delaune for Biblibre.com, all rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
• MARC::Record (<http://search.cpan.org/~gmcharlt/MARC-Record/lib/MARC/Record.pm>) • MARC::Field (<http://search.cpan.org/~gmcharlt/MARC-Record/lib/MARC/Field.pm>) • Library Of Congress MARC pages (<http://www.loc.gov/marc/>) The definitive source for all things MARC.