NAME
Data::MARC::Field008 - Data object for MARC field 008.
SYNOPSIS
use Data::MARC::Field008;
my $obj = Data::MARC::Field008->new(%params);
my $cataloging_source = $obj->cataloging_source;
my $date_entered_on_file = $obj->date_entered_on_file;
my $date1 = $obj->date1;
my $date2 = $obj->date2;
my $language = $obj->language;
my $material = $obj->material;
my $material_type = $obj->material_type;
my $modified_record = $obj->modified_record;
my $place_of_publication = $obj->place_of_publication;
my $raw = $obj->raw;
my $type_of_date = $obj->type_of_date;
METHODS
new
my $obj = Data::MARC::Field008->new(%params);
Constructor.
cataloging_source
Cataloging source character. The length of the string is 1 character. Possible characters are ' ', 'c', 'd', 'u' or '|'.
It's required.
Default value is undef.
date_entered_on_file
Date entered on file.
It's required.
Default values is undef.
date1
Date 1.
It's required.
Default value is undef.
date2
Date 2.
It's required.
Default value is undef.
language
Language. The length of the string is 3 characters. Possible values are ' ', 'zxx', 'mul', 'sgn', 'und', '|||' or three character language code.
It's required.
Default value is undef.
material
Material data object.
Possible objects are:
It's required.
Default value is undef.
material_type
Material type.
Possible values are:
book
computer_file
continuing_resource
map
mixed_material
music
visual_material
It's required.
Default value is undef.
modified_record
Modified record. The length of the string is 1 character. Possible characters are ' ', 'd', 'o', 'r', 's', 'x' or '|'.
It's required.
Default value is undef.
place_of_publication
Place of publication, production, or execution. The length of the string are 3 characters. Possible values are 'xx ', 'vp ', or two/three alphabetic codes.
It's required.
Default value is undef.
raw
Raw string of field 008. The length of the string is 40 characters.
It's optional.
Default value is undef.
type_of_date
The type of date or the publication status. The length of the string is 1 character. Possible characters are 'b', 'c', 'd', 'e', 'i', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'u' or '|'.
It's required.
Default value is undef.
Returns instance of object.
cataloging_source
my $cataloging_source = $obj->cataloging_source;
Get cataloging source flag.
Returns character.
date_entered_on_file
my $date_entered_on_file = $obj->date_entered_on_file;
Get date entered on file.
Returns string.
date1
my $date1 = $obj->date1;
Get date #1 string.
Returns string.
date2
my $date2 = $obj->date2;
Get date #2 string.
Returns string.
language
my $language = $obj->language;
Get language.
Returns string.
material
my $material = $obj->material;
Get material object.
Returns Material object.
material_type
my $material_type = $obj->material_type;
Get material type.
Returns string.
modified_record
my $modified_record = $obj->modified_record;
Get modified record.
Returns string.
place_of_publication
my $place_of_publication = $obj->place_of_publication;
Get place of publication.
Returns string.
raw
my $raw = $obj->raw;
Get raw string of field 008.
Returns string.
type_of_date
my $type_of_date = $obj->type_of_date;
Get type of date.
Returns string.
ERRORS
new():
Field 008 isn't valid.
Raw string: %s
From Mo::utils::check_isa():
Parameter 'material' must be a 'Data::MARC::Field008::Book' object.
Value: %s
Reference: %s
Parameter 'material' must be a 'Data::MARC::Field008::ComputerFile' object.
Value: %s
Reference: %s
Parameter 'material' must be a 'Data::MARC::Field008::ContinuingResource' object.
Value: %s
Reference: %s
Parameter 'material' must be a 'Data::MARC::Field008::Map' object.
Value: %s
Reference: %s
Parameter 'material' must be a 'Data::MARC::Field008::MixedMaterial' object.
Value: %s
Reference: %s
Parameter 'material' must be a 'Data::MARC::Field008::Music' object.
Value: %s
Reference: %s
Parameter 'material' must be a 'Data::MARC::Field008::VisualMaterial' object.
Value: %s
Reference: %s
From Mo::utils::check_length_fix():
Parameter 'date_entered_on_file' has length different than '6'.
Value: %s
Parameter 'language' has length different than '3'.
Value: %s
Parameter 'place_of_publication' has length different than '3'.
Value: %s
Parameter 'raw' has length different than '40'.
Value: %s
From Mo::utils::check_number():
Parameter 'date_entered_on_file' must be a number.
Value: %s
From Mo::utils::check_required():
Parameter 'date_entered_on_file' is required.
Parameter 'language' is required.
Parameter 'material_type' is required.
Parameter 'place_of_publication' is required.
From Mo::utils::check_strings():
Parameter 'material_type' must be one of defined strings.
String: %s
Possible strings: %s
Parameter 'material_type' must have right string definition.
Parameter 'material_type' must have strings definition.
From Data::MARC::Field008::Utils::check_cataloging_source():
Parameter 'cataloging_source' has bad value.
Value: %s
Parameter 'cataloging_source' is required.
Parameter 'cataloging_source' length is bad.
Length: %s
Value: %s
Expected length: 1
Parameter 'cataloging_source' must be a scalar value.
Reference: %s
From Data::MARC::Field008::Utils::check_date():
Parameter 'date1' has bad value.
Value: %s
Parameter 'date2' has bad value.
Value: %s
Parameter 'date1' has value with pipe character.
Value: %s
Parameter 'date2' has value with pipe character.
Value: %s
Parameter 'date1' has value with space character.
Value: %s
Parameter 'date2' has value with space character.
Value: %s
Parameter 'date1' is required.
Parameter 'date2' is required.
Parameter 'date1' length is bad.
Length: %s
Value: %s
Expected length: 1
Parameter 'date2' length is bad.
Length: %s
Value: %s
Expected length: 1
Parameter 'date1' must be a scalar value.
Reference: %s
Parameter 'date2' must be a scalar value.
Reference: %s
From Data::MARC::Field008::Utils::check_modified_record():
Parameter 'modified_record' has bad value.
Value: %s
Parameter 'modified_record' is required.
Parameter 'modified_record' length is bad.
Length: %s
Value: %s
Expected length: 1
Parameter 'modified_record' must be a scalar value.
Reference: %s
From Data::MARC::Field008::Utils::check_type_of_date():
Parameter 'type_of_date' has bad value.
Value: %s
Parameter 'type_of_date' is required.
Parameter 'type_of_date' length is bad.
Length: %s
Value: %s
Expected length: 1
Parameter 'type_of_date' must be a scalar value.
Reference: %s
EXAMPLE
use strict;
use warnings;
use Data::Printer;
use Data::MARC::Field008;
use Data::MARC::Field008::Book;
# cnb000000096
my $obj = Data::MARC::Field008->new(
'cataloging_source' => ' ',
'date_entered_on_file' => '830304',
'date1' => '1982',
'date2' => ' ',
'language' => 'cze',
'material' => Data::MARC::Field008::Book->new(
'biography' => ' ',
'conference_publication' => '0',
'festschrift' => '|',
'form_of_item' => ' ',
'government_publication' => 'u',
'illustrations' => 'a ',
'index' => '0',
'literary_form' => '|',
'nature_of_content' => ' ',
# 89012345678901234
'raw' => 'a u0|0 | ',
'target_audience' => ' ',
),
'material_type' => 'book',
'modified_record' => ' ',
'place_of_publication' => 'xr ',
# 0123456789012345678901234567890123456789
'raw' => '830304s1982 xr a u0|0 | cze ',
'type_of_date' => 's',
);
# Print out.
p $obj;
# Output:
# Data::MARC::Field008 {
# parents: Mo::Object
# public methods (14):
# 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_regexp, 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"
# }
# }
DEPENDENCIES
Data::MARC::Field008::Utils, Error::Pure Error::Pure::Utils Mo, Mo::utils, Readonly.
REPOSITORY
https://github.com/michal-josef-spacek/Data-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