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

http://skim.cz

LICENSE AND COPYRIGHT

© 2025 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.03