NAME
MARC::Field008 - Class for parsing and serialization of MARC field 008.
SYNOPSIS
use MARC::Field008;
my $obj = MARC::Field008->new(%params);
my $data_obj = $cnf->parse($field_008);
my $field_008 = $cnf->serialize($data_obj);
METHODS
new
my $obj = MARC::Field008->new(%params);
Constructor.
ignore_data_errors
Flag for ignoring material object errors.
It's required.
Default value is 0.
leader
MARC leader string.
It's required.
Default is undef.
verbose
Verbose mode.
Default is 0.
Returns instance of object.
parse
my $data_obj = $cnf->parse($field_008);
Parse MARC field 008 string to data object.
Returns instance of Data::MARC::Field008.
serialize
my $field_008 = $cnf->serialize($data_obj);
Serialize Data::MARC::Field008 object to string..
Returns string.
ERRORS
new():
From Mo::utils::check_bool():
Parameter 'ignore_data_errors' must be a bool (0/1).
Value: %s
Parameter 'verbose' must be a bool (0/1).
Value: %s
From Mo::utils::check_isa():
Parameter 'leader' must be a 'Data::MARC::Leader' object.
Value: %s
Reference: %s
From Mo::utils::check_required():
Parameter 'ignore_data_errors' is required.
Parameter 'leader' is required.
From Class::Utils::set_params():
Unknown parameter '%s'.
parse():
Bad length of MARC 008 field.
Length: %s
Errors from L<Data::MARC::Field008>, see documentation.
serialize():
Bad 'Data::MARC::Field008' instance to serialize.
EXAMPLE1
use strict;
use warnings;
use MARC::Field008;
use MARC::Leader;
use Data::Printer;
# Object.
my $leader = MARC::Leader->new->parse(' nam a22 4500');
my $obj = MARC::Field008->new(
'leader' => $leader,
);
# Parse.
my $data = $obj->parse('830304s1982 xr a u0|0 | cze ');
# Dump.
p $data;
# Output:
# Data::MARC::Field008 {
# parents: Mo::Object
# public methods (13):
# BUILD
# Data::MARC::Field008::Utils:
# check_cataloging_source, check_date, check_modified_record, check_type_of_date
# Error::Pure:
# err
# Error::Pure::Utils:
# err_get
# Mo::utils:
# check_isa, check_length_fix, check_number, check_required, check_strings
# Readonly:
# Readonly
# private methods (0)
# internals: {
# cataloging_source " ",
# date_entered_on_file 830304,
# date1 1982,
# date2 " ",
# language "cze",
# material Data::MARC::Field008::Book,
# material_type "book",
# modified_record " ",
# place_of_publication "xr ",
# raw "830304s1982 xr a u0|0 | cze " (dualvar: 830304),
# type_of_date "s"
# }
# }
EXAMPLE2
use strict;
use warnings;
use MARC::Field008;
use MARC::Leader;
use Data::MARC::Field008;
use Data::MARC::Field008::Book;
# Object.
my $leader = MARC::Leader->new->parse(' nam a22 4500');
my $obj = MARC::Field008->new(
'leader' => $leader,
);
# Data.
my $material = Data::MARC::Field008::Book->new(
'biography' => ' ',
'conference_publication' => '0',
'festschrift' => '0',
'form_of_item' => 'r',
'government_publication' => ' ',
'illustrations' => ' ',
'index' => '0',
'literary_form' => '0',
'nature_of_content' => ' ',
'target_audience' => ' ',
);
my $data = Data::MARC::Field008->new(
'cataloging_source' => ' ',
'date_entered_on_file' => ' ',
'date1' => ' ',
'date2' => ' ',
'language' => 'cze',
'material' => $material,
'material_type' => 'book',
'modified_record' => ' ',
'place_of_publication' => ' ',
'type_of_date' => 's',
);
# Serialize.
print "'".$obj->serialize($data)."'\n";
# Output:
# ' s r 000 0 cze '
DEPENDENCIES
Class::Utils, Data::MARC::Field008, Data::MARC::Field008::Book, Data::MARC::Field008::ComputerFile, Data::MARC::Field008::ContinuingResource, Data::MARC::Field008::Map, Data::MARC::Field008::MixedMaterial, Data::MARC::Field008::Music, Data::MARC::Field008::VisualMaterial, Error::Pure, List::Util, Mo::utils, Scalar::Util.
SEE ALSO
- Data::MARC::Field008
-
Data object for MARC field 008.
REPOSITORY
https://github.com/michal-josef-spacek/MARC-Field008
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© 2025 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.03