NAME
MARC::Leader - MARC leader class.
SYNOPSIS
use MARC::Leader;
my $obj = MARC::Leader->new(%params);
my $leader_obj = $obj->parse($leader_str);
my $leader_str = $obj->serialize($leader_obj);
METHODS
new
my $obj = MARC::Leader->new(%params);
Constructor.
mode_strictStrict mode for parsing.
In not strict mode, parser could parse MARC leader with dashes instead of spaces,
Default is 0.
verboseVerbose mode flag. It's boolean value.
Default value is 0.
Returns instance of object.
parse
my $leader_obj = $obj->parse($leader_str);
Parse MARC leader string to object.
Returns instance of 'Data::MARC::Leader' object.
serialize
my $leader_str = $obj->serialize($leader_obj);
Serialize MARC leader object to string.
Returns string.
ERRORS
new():
From Class::Utils::set_params():
Unknown parameter '%s'.
From Mo::utils::check_bool():
Parameter 'verbose' must be a bool (0/1).
Value: %s
parse():
Bad length of MARC leader.
Length: %s
Couldn't parse MARC leader.
(Errors in stack trace are:
Bad number in data base address.
String: %s
Bad number in length.
String: %s
and from L<Data::MARC::Leader>, see documentation.)
serialize():
Bad 'Data::MARC::Leader' instance to serialize.
EXAMPLE1
use strict;
use warnings;
use Data::Printer;
use MARC::Leader;
if (@ARGV < 1) {
print "Usage: $0 marc_leader\n";
exit 1;
}
my $marc_leader = $ARGV[0];
# Object.
my $obj = MARC::Leader->new;
# Parse.
my $leader_obj = $obj->parse($marc_leader);
# Dump to output.
p $leader_obj;
# Output for '02200cem a2200541 i 4500':
# Data::MARC::Leader {
# parents: Mo::Object
# public methods (3):
# BUILD
# Mo::utils:
# check_strings
# Readonly:
# Readonly
# private methods (0)
# internals: {
# bibliographic_level "m",
# char_coding_scheme "a",
# data_base_addr 541,
# descriptive_cataloging_form "i",
# encoding_level " ",
# impl_def_portion_len 0,
# indicator_count 2,
# length 2200,
# length_of_field_portion_len 4,
# multipart_resource_record_level " ",
# starting_char_pos_portion_len 5,
# status "c",
# subfield_code_count 2,
# type "e",
# type_of_control " ",
# undefined 0
# }
# }
EXAMPLE2
use strict;
use warnings;
use MARC::Leader;
use MARC::Leader::Print;
if (@ARGV < 1) {
print "Usage: $0 marc_leader\n";
exit 1;
}
my $marc_leader = $ARGV[0];
# Object.
my $obj = MARC::Leader->new;
# Parse.
my $leader_obj = $obj->parse($marc_leader);
# Print to output.
print scalar MARC::Leader::Print->new->print($leader_obj), "\n";
# Output for '02200cem a2200541 i 4500':
# Record length: 2200
# Record status: Corrected or revised
# Type of record: Cartographic material
# Bibliographic level: Monograph/Item
# Type of control: No specified type
# Character coding scheme: UCS/Unicode
# Indicator count: Number of character positions used for indicators
# Subfield code count: Number of character positions used for a subfield code (2)
# Base address of data: 541
# Encoding level: Full level
# Descriptive cataloging form: ISBD punctuation included
# Multipart resource record level: Not specified or not applicable
# Length of the length-of-field portion: Number of characters in the length-of-field portion of a Directory entry (4)
# Length of the starting-character-position portion: Number of characters in the starting-character-position portion of a Directory entry (5)
# Length of the implementation-defined portion: Number of characters in the implementation-defined portion of a Directory entry (0)
# Undefined: Undefined
EXAMPLE3
use strict;
use warnings;
use Data::MARC::Leader;
use MARC::Leader;
# Object.
my $obj = MARC::Leader->new;
# Data object.
my $data_marc_leader = Data::MARC::Leader->new(
'bibliographic_level' => 'm',
'char_coding_scheme' => 'a',
'data_base_addr' => 541,
'descriptive_cataloging_form' => 'i',
'encoding_level' => ' ',
'impl_def_portion_len' => '0',
'indicator_count' => '2',
'length' => 2200,
'length_of_field_portion_len' => '4',
'multipart_resource_record_level' => ' ',
'starting_char_pos_portion_len' => '5',
'status' => 'c',
'subfield_code_count' => '2',
'type' => 'e',
'type_of_control' => ' ',
'undefined' => '0',
);
# Serialize.
my $leader = $obj->serialize($data_marc_leader);
# Print to output.
print $leader."\n";
# Output:
# 02200cem a2200541 i 4500
DEPENDENCIES
Class::Utils, Data::MARC::Leader, English, Error::Pure, Mo::utils, Scalar::Util.
SEE ALSO
- Data::MARC::Leader
-
Data object for MARC leader.
REPOSITORY
https://github.com/michal-josef-spacek/MARC-Leader
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© 2023-2026 Michal Josef Špaček
BSD 2-Clause License
ACKNOWLEDGEMENTS
Development of this software has been made possible by institutional support for the long-term strategic development of the National Library of the Czech Republic as a research organization provided by the Ministry of Culture of the Czech Republic (DKRVO 2024–2028), Area 11: Linked Open Data.
VERSION
0.09