NAME
Data::MARC::Field008::Music - Data object for MARC field 008 music material.
SYNOPSIS
use Data::MARC::Field008::Music;
my $obj = Data::MARC::Field008::Music->new(%params);
my $accompanying_matter = $obj->accompanying_matter;
my $form_of_composition = $obj->form_of_composition;
my $form_of_item = $obj->form_of_item;
my $format_of_music = $obj->format_of_music;
my $literary_text_for_sound_recordings = $obj->literary_text_for_sound_recordings;
my $music_parts = $obj->music_parts;
my $raw = $obj->raw;
my $target_audience = $obj->target_audience;
my $transposition_and_arrangement = $obj->transposition_and_arrangement;
METHODS
new
my $obj = Data::MARC::Field008::Music->new(%params);
Constructor.
accompanying_matter
Accompanying matter. The length of the string is 6 characters. Possible characters are ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k', 'r', 's', 'z' or '|'.
It's required.
Default value is undef.
form_of_composition
Form of composition. The length of the string is 2 characters. Possible strings are 'an', 'bd', 'bg', 'bl', bt', 'ca', 'cb', 'cc', 'cg', 'ch', 'cl', 'cn', 'co', 'cp', 'cr', 'cs', 'ct', 'cy', 'cz', 'df', 'dv', 'fg', 'fl', 'fm', 'ft', 'gm', 'hy', 'jz', 'mc', 'md', 'mi', 'mo', 'mp', 'mr', 'ms', 'mu', 'mz', 'nc', 'nn', 'op', 'or', 'ov', 'pg', 'pm', 'po', 'pp', 'pr', 'ps', 'pt', 'pv', 'rc', 'rd', 'rg', 'ri', 'rp', 'rq', 'sd', 'sg', 'sn', 'sp', 'st', 'su', 'sy', 'tc', 'tl', 'ts', 'uu', 'vi', 'vr', 'wz', 'za', 'zz' or '||'.
It's required.
Default value is undef.
form_of_item
Form of item. The length of the item is 1 character. Possible characters are ' ', 'a', 'b', 'c', 'd', 'f', 'o', 'q', 'r', 's' or '|'.
It's required.
Default value is undef.
format_of_music
Format of music. The length of the item is 1 character. Possible characters are 'a', 'b', 'c', 'd', 'e', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'p', 'u', 'z' or '|'.
It's required.
Default value is undef.
literary_text_for_sound_recordings
Literary text for sound recordings. The length of the item is 2 characters. Possible characters are ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'z' or '|'.
It's required.
Default value is undef.
music_parts
Music parts. The length of the item is 1 character. Possible characters are ' ', 'd', 'e', 'f', 'n', 'u' or '|'.
It's required.
Default value is undef.
raw
Raw string of material. The length of the string is 17 characters.
It's optional.
Default value is undef.
target_audience
Target audience. The length of the item is 1 character. Possible characters are ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'j' or '|'.
It's required.
Default value is undef.
transposition_and_arrangement
Transposition and arrangement. The length of the item is 1 character. Possible characters are ' ', 'a', 'b', 'c', 'n', 'u' or '|'.
It's required.
Default value is undef.
Returns instance of object.
accompanying_matter
my $accompanying_matter = $obj->accompanying_matter;
Get accompanying matter.
Returns string.
form_of_composition
my $form_of_composition = $obj->form_of_composition;
Get form of composition.
Returns string.
form_of_item
my $form_of_item = $obj->form_of_item;
Get form of item.
Returns string.
format_of_music
my $format_of_music = $obj->format_of_music;
Get format of music.
Returns string.
literary_text_for_sound_recordings
my $literary_text_for_sound_recordings = $obj->literary_text_for_sound_recordings;
Get literary text for sound recordings.
Returns string.
music_parts
my $music_parts = $obj->music_parts;
Get music parts.
Returns string.
raw
my $raw = $obj->form_of_item;
Get raw string of the block.
Returns string.
target_audience
my $target_audience = $obj->target_audience;
Get target audience.
Returns string.
transposition_and_arrangement
my $transposition_and_arrangement = $obj->transposition_and_arrangement;
Get transposition and arrangement.
Returns string.
ERRORS
new():
Couldn't create data object of music.
Raw string: %s
Parameter 'raw' has length different than '17'.
Value: %s
From Data::MARC::Field008::Utils::check_item_form():
Parameter 'form_of_item' has bad value.
Value: %s
Parameter 'form_of_item' is required.
Parameter 'form_of_item' length is bad.
Length: %s
Value: %s
Expected length: 1
Parameter 'form_of_item' must be a scalar value.
Reference: %s
From Data::MARC::Field008::Utils::check_music_accompanying_matter():
Parameter 'accompanying_matter' contains bad music accompanying matter character.
Value: %s
Parameter 'accompanying_matter' is required.
Parameter 'accompanying_matter' must be a scalar value.
Reference: %s
Parameter 'accompanying_matter' length is bad.
Length: %s
Value: %s
Expected length: 6
From Data::MARC::Field008::Utils::check_music_composition_form():
Parameter 'form_of_composition' has bad value.
Value: %s
Parameter 'form_of_composition' is required.
Parameter 'check_music_composition_form' length is bad.
Length: %s
Value: %s
Expected length: 2
Parameter 'check_music_composition_form' must be a scalar value.
Reference: %s
From Data::MARC::Field008::Utils::check_music_format():
Parameter 'format_of_music' has bad value.
Value: %s
Parameter 'format_of_music' is required.
Parameter 'format_of_music' length is bad.
Length: %s
Value: %s
Expected length: 1
Parameter 'format_of_music' must be a scalar value.
Reference: %s
From Data::MARC::Field008::Utils::check_music_literary_text():
Parameter 'literary_text_for_sound_recordings' contains bad music literary text character.
Value: %s
Parameter 'literary_text_for_sound_recordings' has value with pipe character.
Value: %s
Parameter 'literary_text_for_sound_recordings' is required.
Parameter 'literary_text_for_sound_recordings' must be a scalar value.
Reference: %s
Parameter 'literary_text_for_sound_recordings' length is bad.
Length: %s
Value: %s
Expected length: 2
From Data::MARC::Field008::Utils::check_music_parts():
Parameter 'music_parts' has bad value.
Value: %s
Parameter 'music_parts' is required.
Parameter 'music_parts' length is bad.
Length: %s
Value: %s
Expected length: 1
Parameter 'music_parts' must be a scalar value.
Reference: %s
From Data::MARC::Field008::Utils::check_music_transposition_and_arrangement():
Parameter 'transposition_and_arrangement' has bad value.
Value: %s
Parameter 'transposition_and_arrangement' is required.
Parameter 'transposition_and_arrangement' length is bad.
Length: %s
Value: %s
Expected length: 1
Parameter 'transposition_and_arrangement' must be a scalar value.
Reference: %s
From Data::MARC::Field008::Utils::check_target_audience():
Parameter 'target_audience' has bad value.
Value: %s
Parameter 'target_audience' is required.
Parameter 'target_audience' length is bad.
Length: %s
Value: %s
Expected length: 1
Parameter 'target_audience' must be a scalar value.
Reference: %s
EXAMPLE
use strict;
use warnings;
use Data::Printer;
use Data::MARC::Field008::Music;
# cnb000012142
my $obj = Data::MARC::Field008::Music->new(
'accompanying_matter' => ' ',
'form_of_composition' => 'sg',
'form_of_item' => ' ',
'format_of_music' => 'z',
'literary_text_for_sound_recordings' => 'nn',
'music_parts' => ' ',
# 89012345678901234
'raw' => 'sgz g nn ',
'target_audience' => 'g',
'transposition_and_arrangement' => ' ',
);
# Print out.
p $obj;
# Output:
# Data::MARC::Field008::Music {
# parents: Mo::Object
# public methods (13):
# BUILD
# Data::MARC::Field008::Utils:
# check_item_form, check_music_accompanying_matter, check_music_composition_form, check_music_format, check_music_literary_text, check_music_parts, check_music_transposition_and_arrangement, check_target_audience
# Error::Pure:
# err
# Error::Pure::Utils:
# err_get
# Mo::utils:
# check_length_fix, check_required
# private methods (0)
# internals: {
# accompanying_matter " ",
# format_of_music "z",
# form_of_composition "sg",
# form_of_item " ",
# literary_text_for_sound_recordings "nn",
# music_parts " ",
# raw "sgz g nn ",
# target_audience "g",
# transposition_and_arrangement " "
# }
# }
DEPENDENCIES
Data::MARC::Field008::Utils, Error::Pure Error::Pure::Utils Mo, Mo::utils.
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