File Coverage

blib/lib/Data/MARC/Field008/Utils.pm
Criterion Covered Total %
statement 250 250 100.0
branch 48 48 100.0
condition 36 36 100.0
subroutine 47 47 100.0
pod 37 37 100.0
total 418 418 100.0


line stmt bran cond sub pod time code
1             package Data::MARC::Field008::Utils;
2              
3 111     111   878478 use base qw(Exporter);
  111         223  
  111         22219  
4 111     111   899 use strict;
  111         362  
  111         4053  
5 111     111   773 use warnings;
  111         302  
  111         7430  
6              
7 111     111   61521 use Error::Pure qw(err);
  111         1125915  
  111         2987  
8 111     111   12057 use List::Util 1.33 qw(none);
  111         2763  
  111         16103  
9 111     111   787 use Readonly;
  111         280  
  111         633057  
10              
11             Readonly::Array our @EXPORT_OK => qw(check_book_biography check_book_festschrift
12             check_book_illustration check_book_literary_form check_book_nature_of_content
13             check_cataloging_source check_computer_file_item_form check_computer_file_type
14             check_conference_publication check_continuing_resource_entry_convention
15             check_continuing_resource_form_of_original_item
16             check_continuing_resource_frequency check_continuing_resource_nature_of_content
17             check_continuing_resource_nature_of_entire_work
18             check_continuing_resource_original_alphabet_or_script
19             check_continuing_resource_regularity
20             check_continuing_resource_type check_date check_government_publication
21             check_index check_item_form check_map_cartographic_material_type
22             check_map_projection check_map_relief check_map_special_format
23             check_modified_record check_music_accompanying_matter
24             check_music_composition_form check_music_format check_music_literary_text
25             check_music_parts check_music_transposition_and_arrangement
26             check_visual_material_running_time check_visual_material_technique
27             check_visual_material_type check_target_audience check_type_of_date);
28             Readonly::Array our @BOOK_BIOGRAPHIES => (' ', 'a', 'b', 'c', 'd', '|');
29             Readonly::Array our @BOOK_FESTSCHRIFTS => qw(0 1 |);
30             Readonly::Array our @BOOK_LITERARY_FORMS => qw(0 1 d e f h i j m p s u |);
31             Readonly::Array our @CATALOGING_SOURCES => (' ', 'c', 'd', 'u', '|');
32             Readonly::Array our @COMPUTER_FILE_ITEM_FORMS => (' ', 'o', 'q', '|');
33             Readonly::Array our @COMPUTER_FILE_TYPE => qw(a b c d e f g h i j m u z |);
34             Readonly::Array our @CONFERENCE_PUBLICATIONS => qw(0 1 |);
35             Readonly::Array our @CONTINUING_RESOURCES_ENTRY_CONVENTIONS => qw(0 1 2 |);
36             Readonly::Array our @CONTINUING_RESOURCES_FORMS_OF_ORIGINAL_ITEM => (' ', 'a',
37             'b', 'c', 'd', 'e', 'f', 'o', 'q', 's', '|');
38             Readonly::Array our @CONTINUING_RESOURCES_FREQUENCIES => (' ', 'a', 'b', 'c',
39             'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'm', 'q', 's', 't', 'u', 'w',
40             'z', '|');
41             Readonly::Array our @CONTINUING_RESOURCES_NATURE_OF_ENTIRE_WORKS => (' ', 'a',
42             'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'p',
43             'q', 'r', 's', 't', 'u', 'v', 'w', 'y', 'z', '5', '6', '|');
44             Readonly::Array our @CONTINUING_RESOURCES_ORIGINAL_ALPHABETS_OR_SCRIPTS => (' ',
45             'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'u', 'z',
46             '|');
47             Readonly::Array our @CONTINUING_RESOURCES_REGULARITIES => qw(n r u x |);
48             Readonly::Array our @CONTINUING_RESOURCES_TYPES => (' ', 'd', 'g', 'h', 'j',
49             'l', 'm', 'n', 'p', 'r', 's', 't', 'w', '|');
50             Readonly::Array our @GOVERNMENT_PUBLICATIONS => (' ', 'a', 'c', 'f', 'i',
51             'l', 'm', 'o', 's', 'u', 'z', '|');
52             Readonly::Array our @INDEXES => qw(0 1 |);
53             Readonly::Array our @ITEM_FORMS => (' ', 'a', 'b', 'c', 'd', 'f', 'o', 'q',
54             'r', 's', '|');
55             Readonly::Array our @MAP_CARTOGRAPHIC_MATERIAL_TYPES => qw(a b c d e f g u z |);
56             Readonly::Array our @MAP_PROJECTIONS => (' ', 'aa', 'ab', 'ac', 'ad', 'ae',
57             'af', 'ag', 'am', 'an', 'ap', 'au', 'az', 'ba', 'bb', 'bc', 'bd', 'be',
58             'bf', 'bg', 'bh', 'bi', 'bj', 'bk', 'bl', 'bo', 'br', 'bs', 'bu', 'bz',
59             'ca', 'cb', 'cc', 'ce', 'cp', 'cu', 'cz', 'da', 'db', 'dc', 'dd', 'de',
60             'df', 'dg', 'dh', 'dl', 'zz', '||');
61             Readonly::Array our @MODIFIED_RECORDS => (' ', 'd', 'o', 'r', 's', 'x', '|');
62             Readonly::Array our @MUSIC_COMPOSITION_FORMS => qw(an bd bg bl bt ca cb cc cg ch
63             cl cn co cp cr cs ct cy cz df dv fg fl fm ft gm hy jz mc md mi mo mp mr
64             ms mu mz nc nn op or ov pg pm po pp pr ps pt pv rc rd rg ri rp rq sd sg
65             sn sp st su sy tc tl ts uu vi vr wz za zz ||);
66             Readonly::Array our @MUSIC_FORMATS => qw(a b c d e g h i j k l m n p u z |);
67             Readonly::Array our @MUSIC_PARTS => (' ', 'd', 'e', 'f', 'n', 'u', '|');
68             Readonly::Array our @MUSIC_TRANSPOSITIONS_AND_ARRANGEMENTS => (' ', 'a', 'b',
69             'c', 'n', 'u', '|');
70             Readonly::Array our @VISUAL_MATERIAL_TECHNIQUES => qw(a c l n u z |);
71             Readonly::Array our @VISUAL_MATERIAL_TYPES => qw(a b c d f g i k l m n o p q r s
72             t v w z |);
73             Readonly::Array our @TARGET_AUDIENCES => (' ', 'a', 'b', 'c', 'd', 'e', 'f',
74             'g', 'j', '|');
75             Readonly::Array our @TYPE_OF_DATES => qw(b c d e i k m n p q r s t u |);
76              
77             our $VERSION = 0.04;
78              
79             sub check_book_biography {
80 23     23 1 276316 my ($self, $key) = @_;
81              
82 23         90 _check_base($self, $key);
83 19         70 _check_length($self, $key, 1);
84 18         80 _check_bad_value($self, $key, \@BOOK_BIOGRAPHIES);
85              
86 15         36 return;
87             }
88              
89             sub check_book_festschrift {
90 22     22 1 252703 my ($self, $key) = @_;
91              
92 22         94 _check_base($self, $key);
93 18         54 _check_length($self, $key, 1);
94 17         60 _check_bad_value($self, $key, \@BOOK_FESTSCHRIFTS);
95              
96 16         37 return;
97             }
98              
99             sub check_book_illustration {
100 24     24 1 357452 my ($self, $key) = @_;
101              
102 24         86 _check_base($self, $key);
103 20         770 _check_length($self, $key, 4);
104 19 100       229 if ($self->{$key} !~ m/^[\ abcdefghijklmop\|]{4}$/ms) {
105             err "Parameter '$key' contains bad book illustration character.",
106 1         6 'Value', $self->{$key},
107             ;
108             }
109 18 100 100     257 if ($self->{$key} ne '||||' && $self->{$key} =~ m/\|/ms) {
110             err "Parameter '$key' has value with pipe character.",
111 1         9 'Value', $self->{$key},
112             ;
113             }
114              
115 17         72 return;
116             }
117              
118             sub check_book_literary_form {
119 22     22 1 312154 my ($self, $key) = @_;
120              
121 22         79 _check_base($self, $key);
122 18         135 _check_length($self, $key, 1);
123 17         63 _check_bad_value($self, $key, \@BOOK_LITERARY_FORMS);
124              
125 16         42 return;
126             }
127              
128             sub check_book_nature_of_content {
129 24     24 1 402798 my ($self, $key) = @_;
130              
131 24         96 _check_base($self, $key);
132 20         79 _check_length($self, $key, 4);
133 19 100       117 if ($self->{$key} !~ m/^[\ abcdefgijklmnopqrstuvwyz256\|]{4}$/ms) {
134             err "Parameter '$key' has bad value.",
135 1         8 'Value', $self->{$key},
136             ;
137             }
138 18 100 100     142 if ($self->{$key} ne '||||' && $self->{$key} =~ m/\|/ms) {
139             err "Parameter '$key' has value with pipe character.",
140 1         8 'Value', $self->{$key},
141             ;
142             }
143              
144 17         51 return;
145             }
146              
147             sub check_cataloging_source {
148 13     13 1 418254 my ($self, $key) = @_;
149              
150 13         50 _check_base($self, $key);
151 10         32 _check_length($self, $key, 1);
152 9         51 _check_bad_value($self, $key, \@CATALOGING_SOURCES);
153              
154 8         24 return;
155             }
156              
157             sub check_computer_file_item_form {
158 16     16 1 400768 my ($self, $key) = @_;
159              
160 16         71 _check_base($self, $key);
161 12         44 _check_length($self, $key, 1);
162 11         52 _check_bad_value($self, $key, \@COMPUTER_FILE_ITEM_FORMS);
163              
164 8         23 return;
165             }
166              
167             sub check_computer_file_type {
168 15     15 1 381942 my ($self, $key) = @_;
169              
170 15         81 _check_base($self, $key);
171 11         37 _check_length($self, $key, 1);
172 10         38 _check_bad_value($self, $key, \@COMPUTER_FILE_TYPE);
173              
174 9         25 return;
175             }
176              
177             sub check_conference_publication {
178 36     36 1 330825 my ($self, $key) = @_;
179              
180 36         154 _check_base($self, $key);
181 31         143 _check_length($self, $key, 1);
182 30         138 _check_bad_value($self, $key, \@CONFERENCE_PUBLICATIONS);
183              
184 29         73 return;
185             }
186              
187             sub check_continuing_resource_entry_convention {
188 21     21 1 366654 my ($self, $key) = @_;
189              
190 21         69 _check_base($self, $key);
191 17         752 _check_length($self, $key, 1);
192 16         56 _check_bad_value($self, $key, \@CONTINUING_RESOURCES_ENTRY_CONVENTIONS);
193              
194 15         37 return;
195             }
196              
197             sub check_continuing_resource_form_of_original_item {
198 21     21 1 345812 my ($self, $key) = @_;
199              
200 21         86 _check_base($self, $key);
201 17         57 _check_length($self, $key, 1);
202 16         70 _check_bad_value($self, $key, \@CONTINUING_RESOURCES_FORMS_OF_ORIGINAL_ITEM);
203              
204 15         36 return;
205             }
206              
207             sub check_continuing_resource_frequency {
208 21     21 1 272835 my ($self, $key) = @_;
209              
210 21         93 _check_base($self, $key);
211 17         54 _check_length($self, $key, 1);
212 16         56 _check_bad_value($self, $key, \@CONTINUING_RESOURCES_FREQUENCIES);
213              
214 15         98 return;
215             }
216              
217             sub check_continuing_resource_nature_of_content {
218 23     23 1 428934 my ($self, $key) = @_;
219              
220 23         79 _check_base($self, $key);
221 19         59 _check_length($self, $key, 3);
222 18 100       129 if ($self->{$key} !~ m/^[\ abcdefghiklmnopqrstuvwyz56\|]{3}$/ms) {
223             err "Parameter '$key' has bad value.",
224 1         7 'Value', $self->{$key},
225             ;
226             }
227 17 100 100     184 if ($self->{$key} ne '|||' && $self->{$key} =~ m/\|/ms) {
228             err "Parameter '$key' has value with pipe character.",
229 1         6 'Value', $self->{$key},
230             ;
231             }
232              
233 16         48 return;
234             }
235              
236             sub check_continuing_resource_nature_of_entire_work {
237 22     22 1 273127 my ($self, $key) = @_;
238              
239 22         162 _check_base($self, $key);
240 18         91 _check_length($self, $key, 1);
241 17         89 _check_bad_value($self, $key, \@CONTINUING_RESOURCES_NATURE_OF_ENTIRE_WORKS);
242              
243 16         40 return;
244             }
245              
246             sub check_continuing_resource_original_alphabet_or_script {
247 22     22 1 359481 my ($self, $key) = @_;
248              
249 22         103 _check_base($self, $key);
250 18         75 _check_length($self, $key, 1);
251 17         79 _check_bad_value($self, $key, \@CONTINUING_RESOURCES_ORIGINAL_ALPHABETS_OR_SCRIPTS);
252              
253 16         43 return;
254             }
255              
256             sub check_continuing_resource_regularity {
257 21     21 1 383291 my ($self, $key) = @_;
258              
259 21         87 _check_base($self, $key);
260 17         47 _check_length($self, $key, 1);
261 16         87 _check_bad_value($self, $key, \@CONTINUING_RESOURCES_REGULARITIES);
262              
263 15         59 return;
264             }
265              
266             sub check_continuing_resource_type {
267 22     22 1 316079 my ($self, $key) = @_;
268              
269 22         77 _check_base($self, $key);
270 18         62 _check_length($self, $key, 1);
271 17         89 _check_bad_value($self, $key, \@CONTINUING_RESOURCES_TYPES);
272              
273 16         39 return;
274             }
275              
276             sub check_date {
277 19     19 1 403734 my ($self, $key) = @_;
278              
279 19         77 _check_base($self, $key);
280 16         46 _check_length($self, $key, 4);
281 15 100       84 if ($self->{$key} !~ m/^[\ \|\du]{4}$/ms) {
282             err "Parameter '$key' has bad value.",
283 1         6 'Value', $self->{$key},
284             ;
285             }
286 14 100 100     69 if ($self->{$key} ne ' ' && $self->{$key} =~ m/\ /ms) {
287             err "Parameter '$key' has value with space character.",
288 2         14 'Value', $self->{$key},
289             ;
290             }
291 12 100 100     70 if ($self->{$key} ne '||||' && $self->{$key} =~ m/\|/ms) {
292             err "Parameter '$key' has value with pipe character.",
293 2         12 'Value', $self->{$key},
294             ;
295             }
296              
297 10         29 return;
298             }
299              
300             sub check_government_publication {
301 62     62 1 347863 my ($self, $key) = @_;
302              
303 62         215 _check_base($self, $key);
304 56         184 _check_length($self, $key, 1);
305 55         244 _check_bad_value($self, $key, \@GOVERNMENT_PUBLICATIONS);
306              
307 54         162 return;
308             }
309              
310             sub check_index {
311 31     31 1 387521 my ($self, $key) = @_;
312              
313 31         116 _check_base($self, $key);
314 27         86 _check_length($self, $key, 1);
315 26         98 _check_bad_value($self, $key, \@INDEXES);
316              
317 25         65 return;
318             }
319              
320             sub check_item_form {
321 70     70 1 256796 my ($self, $key) = @_;
322              
323 70         339 _check_base($self, $key);
324 64         235 _check_length($self, $key, 1);
325 63         279 _check_bad_value($self, $key, \@ITEM_FORMS);
326              
327 62         201 return;
328             }
329              
330             sub check_map_cartographic_material_type {
331 16     16 1 333466 my ($self, $key) = @_;
332              
333 16         61 _check_base($self, $key);
334 13         39 _check_length($self, $key, 1);
335 12         46 _check_bad_value($self, $key, \@MAP_CARTOGRAPHIC_MATERIAL_TYPES);
336              
337 11         33 return;
338             }
339              
340             sub check_map_projection {
341 17     17 1 302716 my ($self, $key) = @_;
342              
343 17         65 _check_base($self, $key);
344 14         45 _check_length($self, $key, 2);
345 13         48 _check_bad_value($self, $key, \@MAP_PROJECTIONS);
346              
347 12         41 return;
348             }
349              
350             sub check_map_relief {
351 18     18 1 446941 my ($self, $key) = @_;
352              
353 18         81 _check_base($self, $key);
354 15         65 _check_length($self, $key, 4);
355 14 100       113 if ($self->{$key} !~ m/^[\ abcdefgijkmz\|]{4}$/ms) {
356             err "Parameter '$key' contains bad relief character.",
357 1         8 'Value', $self->{$key},
358             ;
359             }
360 13 100 100     100 if ($self->{$key} ne '||||' && $self->{$key} =~ m/\|/ms) {
361             err "Parameter '$key' has value with pipe character.",
362 1         7 'Value', $self->{$key},
363             ;
364             }
365              
366 12         38 return;
367             }
368              
369             sub check_map_special_format {
370 18     18 1 335674 my ($self, $key) = @_;
371              
372 18         239 _check_base($self, $key);
373 15         45 _check_length($self, $key, 2);
374 14 100       112 if ($self->{$key} !~ m/^[\ ejklnoprz\|]{2}$/ms) {
375             err "Parameter '$key' contains bad special format characteristics character.",
376 1         6 'Value', $self->{$key},
377             ;
378             }
379 13 100 100     95 if ($self->{$key} ne '||' && $self->{$key} =~ m/\|/ms) {
380             err "Parameter '$key' has value with pipe character.",
381 1         7 'Value', $self->{$key},
382             ;
383             }
384              
385 12         37 return;
386             }
387              
388             sub check_modified_record {
389 11     11 1 370680 my ($self, $key) = @_;
390              
391 11         44 _check_base($self, $key);
392 8         23 _check_length($self, $key, 1);
393 7         24 _check_bad_value($self, $key, \@MODIFIED_RECORDS);
394              
395 6         12 return;
396             }
397              
398             sub check_music_accompanying_matter {
399 18     18 1 452908 my ($self, $key) = @_;
400              
401 18         108 _check_base($self, $key);
402 15         54 _check_length($self, $key, 6);
403 14 100       91 if ($self->{$key} !~ m/^[\ abcdefghikrsz\|]{6}$/ms) {
404             err "Parameter '$key' contains bad music accompanying matter character.",
405 1         7 'Value', $self->{$key},
406             ;
407             }
408              
409 13         40 return;
410             }
411              
412             sub check_music_composition_form {
413 17     17 1 266733 my ($self, $key) = @_;
414              
415 17         55 _check_base($self, $key);
416 14         40 _check_length($self, $key, 2);
417 13         64 _check_bad_value($self, $key, \@MUSIC_COMPOSITION_FORMS);
418              
419 12         37 return;
420             }
421              
422             sub check_music_format {
423 17     17 1 396801 my ($self, $key) = @_;
424              
425 17         59 _check_base($self, $key);
426 14         48 _check_length($self, $key, 1);
427 13         48 _check_bad_value($self, $key, \@MUSIC_FORMATS);
428              
429 12         35 return;
430             }
431              
432             sub check_music_literary_text {
433 19     19 1 339782 my ($self, $key) = @_;
434              
435 19         101 _check_base($self, $key);
436 16         51 _check_length($self, $key, 2);
437 15 100       104 if ($self->{$key} !~ m/^[\ abcdefghijklmnoprstz\|]{2}$/ms) {
438             err "Parameter '$key' contains bad music literary text character.",
439 1         6 'Value', $self->{$key},
440             ;
441             }
442 14 100 100     128 if ($self->{$key} ne '||' && $self->{$key} =~ m/\|/ms) {
443             err "Parameter '$key' has value with pipe character.",
444 1         8 'Value', $self->{$key},
445             ;
446             }
447              
448 13         41 return;
449             }
450              
451             sub check_music_parts {
452 18     18 1 399160 my ($self, $key) = @_;
453              
454 18         225 _check_base($self, $key);
455 15         157 _check_length($self, $key, 1);
456 14         87 _check_bad_value($self, $key, \@MUSIC_PARTS);
457              
458 13         47 return;
459             }
460              
461             sub check_music_transposition_and_arrangement {
462 18     18 1 339576 my ($self, $key) = @_;
463              
464 18         98 _check_base($self, $key);
465 15         50 _check_length($self, $key, 1);
466 14         103 _check_bad_value($self, $key, \@MUSIC_TRANSPOSITIONS_AND_ARRANGEMENTS);
467              
468 13         35 return;
469             }
470              
471             sub check_visual_material_running_time {
472 21     21 1 343256 my ($self, $key) = @_;
473              
474 21         119 _check_base($self, $key);
475 18         60 _check_length($self, $key, 3);
476 17 100       110 if ($self->{$key} !~ m/^[\d\-n\|]{3}$/ms) {
477             err "Parameter '$key' contains bad visual material running time.",
478 1         7 'Value', $self->{$key},
479             ;
480             }
481 16 100 100     155 if ($self->{$key} ne '---' && $self->{$key} =~ m/\-/ms) {
482             err "Parameter '$key' has value with dash character.",
483 1         9 'Value', $self->{$key},
484             ;
485             }
486 15 100 100     89 if ($self->{$key} ne '|||' && $self->{$key} =~ m/\|/ms) {
487             err "Parameter '$key' has value with pipe character.",
488 1         8 'Value', $self->{$key},
489             ;
490             }
491 14 100 100     73 if ($self->{$key} ne 'nnn' && $self->{$key} =~ m/n/ms) {
492             err "Parameter '$key' has value with 'n' character.",
493 1         8 'Value', $self->{$key},
494             ;
495             }
496              
497 13         42 return;
498             }
499              
500             sub check_visual_material_technique {
501 15     15 1 296495 my ($self, $key) = @_;
502              
503 15         51 _check_base($self, $key);
504 12         47 _check_length($self, $key, 1);
505 11         38 _check_bad_value($self, $key, \@VISUAL_MATERIAL_TECHNIQUES);
506              
507 10         27 return;
508             }
509              
510             sub check_visual_material_type {
511 7     7 1 471985 my ($self, $key) = @_;
512              
513 7         47 _check_base($self, $key);
514 4         14 _check_length($self, $key, 1);
515 3         12 _check_bad_value($self, $key, \@VISUAL_MATERIAL_TYPES);
516              
517 2         6 return;
518             }
519              
520             sub check_target_audience {
521 49     49 1 410951 my ($self, $key) = @_;
522              
523 49         243 _check_base($self, $key);
524 44         164 _check_length($self, $key, 1);
525 43         151 _check_bad_value($self, $key, \@TARGET_AUDIENCES);
526              
527 42         109 return;
528             }
529              
530             sub check_type_of_date {
531 9     9 1 337948 my ($self, $key) = @_;
532              
533 9         41 _check_base($self, $key);
534 6         18 _check_length($self, $key, 1);
535 5         21 _check_bad_value($self, $key, \@TYPE_OF_DATES);
536              
537 4         10 return;
538             }
539              
540             sub _check_bad_value {
541 519     519   1696 my ($self, $key, $keys_ar) = @_;
542              
543 519 100   2686   2086 if (none { $self->{$key} eq $_ } @{$keys_ar}) {
  2686         19478  
  519         2646  
544             err "Parameter '$key' has bad value.",
545 32         410 'Value', $self->{$key},
546             ;
547             }
548              
549 487         5811 return;
550             }
551              
552             sub _check_base {
553 838     838   1797 my ($self, $key) = @_;
554              
555 838 100 100     4796 if (! exists $self->{$key} || ! defined $self->{$key}) {
556 100         568 err "Parameter '$key' is required.";
557             }
558 738 100       2169 if (ref $self->{$key} ne '') {
559             err "Parameter '$key' must be a scalar value.",
560 37         378 'Reference', (ref $self->{$key}),
561             ;
562             }
563              
564 701         1326 return;
565             }
566              
567             sub _check_length {
568 701     701   1496 my ($self, $key, $exp_length) = @_;
569              
570 701 100       1977 if (length $self->{$key} != $exp_length) {
571             err "Parameter '$key' length is bad.",
572             'Length', (length $self->{$key}),
573 37         271 'Value', $self->{$key},
574             'Expected length', $exp_length,
575             ;
576             }
577              
578 664         1149 return;
579             }
580              
581             1;
582              
583             __END__
584              
585             =pod
586              
587             =encoding utf8
588              
589             =head1 NAME
590              
591             Data::MARC::Field008::Utils - Utilities to check MARC field008 values.
592              
593             =head1 SYNOPSIS
594              
595             use Data::MARC::Field008::Utils qw(check_book_biography check_book_festschrift
596             check_book_illustration check_book_literary_form check_book_nature_of_content
597             check_cataloging_source check_computer_file_item_form check_computer_file_type
598             check_conference_publication check_continuing_resource_entry_convention
599             check_continuing_resource_form_of_original_item
600             check_continuing_resource_frequency check_continuing_resource_nature_of_content
601             check_continuing_resource_nature_of_entire_work
602             check_continuing_resource_original_alphabet_or_script
603             check_continuing_resource_regularity
604             check_continuing_resource_type check_date check_government_publication
605             check_index check_item_form check_map_cartographic_material_type
606             check_map_projection check_map_relief check_map_special_format
607             check_modified_record check_music_accompanying_matter
608             check_music_composition_form check_music_format check_music_literary_text
609             check_music_parts check_music_transposition_and_arrangement
610             check_visual_material_running_time check_visual_material_technique
611             check_visual_material_type check_target_audience check_type_of_date);
612              
613             check_book_biography($self, $key);
614             check_book_festschrift($self, $key);
615             check_book_illustration($self, $key);
616             check_book_literary_form($self, $key);
617             check_book_nature_of_content($self, $key);
618             check_cataloging_source($self, $key);
619             check_computer_file_item_form($self, $key);
620             check_computer_file_type($self, $key);
621             check_conference_publication($self, $key);
622             check_continuing_resource_entry_convention($self, $key);
623             check_continuing_resource_form_of_original_item($self, $key);
624             check_continuing_resource_frequency($self, $key);
625             check_continuing_resource_nature_of_content($self, $key);
626             check_continuing_resource_nature_of_entire_work($self, $key);
627             check_continuing_resource_original_alphabet_or_script($self, $key);
628             check_continuing_resource_regularity($self, $key);
629             check_continuing_resource_type($self, $key);
630             check_date($self, $key);
631             check_government_publication($self, $key);
632             check_index($self, $key);
633             check_item_form($self, $key);
634             check_map_cartographic_material_type($self, $key);
635             check_map_projection($self, $key);
636             check_map_relief($self, $key);
637             check_map_special_format($self, $key);
638             check_modified_record($self, $key);
639             check_music_accompanying_matter($self, $key);
640             check_music_composition_form($self, $key);
641             check_music_format($self, $key);
642             check_music_literary_text($self, $key);
643             check_music_parts($self, $key);
644             check_music_transposition_and_arrangement($self, $key);
645             check_visual_material_running_time($self, $key);
646             check_visual_material_technique($self, $key);
647             check_visual_material_type($self, $key);
648             check_target_audience($self, $key);
649             check_type_of_date($self, $key);
650              
651             =head1 DESCRIPTION
652              
653             The Perl module with common utilities for check with L<Data::MARC::Field008> values.
654              
655             =head1 SUBROUTINES
656              
657             =head2 C<check_book_biography>
658              
659             check_book_biography($self, $key);
660              
661             Check parameter defined by C<$key> which is book biography.
662              
663             Put error if check isn't ok.
664              
665             Returns undef.
666              
667             =head2 C<check_book_festschrift>
668              
669             check_book_festschrift($self, $key);
670              
671             Check parameter defined by C<$key> which is book festschrift.
672              
673             Put error if check isn't ok.
674              
675             Returns undef.
676              
677             =head2 C<check_book_illustration>
678              
679             check_book_illustration($self, $key);
680              
681             Check parameter defined by C<$key> which is book illustration.
682              
683             Put error if check isn't ok.
684              
685             Returns undef.
686              
687             =head2 C<check_book_literary_form>
688              
689             check_book_literary_form($self, $key);
690              
691             Check parameter defined by C<$key> which is book literary form.
692              
693             Put error if check isn't ok.
694              
695             Returns undef.
696              
697             =head2 C<check_book_nature_of_content>
698              
699             check_book_nature_of_content($self, $key);
700              
701             Check parameter defined by C<$key> which is book nature of content.
702              
703             Put error if check isn't ok.
704              
705             Returns undef.
706              
707             =head2 C<check_cataloging_source>
708              
709             check_cataloging_source($self, $key);
710              
711             Check parameter defined by C<$key> which is cataloging source.
712              
713             Put error if check isn't ok.
714              
715             Returns undef.
716              
717             =head2 C<check_computer_file_item_form>
718              
719             check_computer_file_item_form($self, $key);
720              
721             Check parameter defined by C<$key> which is computer file form of item.
722              
723             Put error if check isn't ok.
724              
725             Returns undef.
726              
727             =head2 C<check_computer_file_type>
728              
729             check_computer_file_type($self, $key);
730              
731             Check parameter defined by C<$key> which is computer file file type.
732              
733             Put error if check isn't ok.
734              
735             Returns undef.
736              
737             =head2 C<check_conference_publication>
738              
739             check_conference_publication($self, $key);
740              
741             Check parameter defined by C<$key> which is conference publication.
742              
743             Put error if check isn't ok.
744              
745             Returns undef.
746              
747             =head2 C<check_continuing_resource_entry_convention>
748              
749             check_continuing_resource_entry_convention($self, $key);
750              
751             Check parameter defined by C<$key> which is continuing resource entry
752             convention.
753              
754             Put error if check isn't ok.
755              
756             Returns undef.
757              
758             =head2 C<check_continuing_resource_form_of_original_item>
759              
760             check_continuing_resource_form_of_original_item($self, $key);
761              
762             Check parameter defined by C<$key> which is continuing resource form of original
763             item.
764              
765             Put error if check isn't ok.
766              
767             Returns undef.
768              
769             =head2 C<check_continuing_resource_frequency>
770              
771             check_continuing_resource_frequency($self, $key);
772              
773             Check parameter defined by C<$key> which is continuing resource frequency.
774              
775             Put error if check isn't ok.
776              
777             Returns undef.
778              
779             =head2 C<check_continuing_resource_nature_of_content>
780              
781             check_continuing_resource_nature_of_content($self, $key);
782              
783             Check parameter defined by C<$key> which is continuing resource nature of
784             content.
785              
786             Put error if check isn't ok.
787              
788             Returns undef.
789              
790             =head2 C<check_continuing_resource_nature_of_entire_work>
791              
792             check_continuing_resource_nature_of_entire_work($self, $key);
793              
794             Check parameter defined by C<$key> which is continuing resource nature of
795             entire work.
796              
797             Put error if check isn't ok.
798              
799             Returns undef.
800              
801             =head2 C<check_continuing_resource_original_alphabet_or_script>
802              
803             check_continuing_resource_original_alphabet_or_script($self, $key);
804              
805             Check parameter defined by C<$key> which is continuing resource original
806             alphabet or script of title.
807              
808             Put error if check isn't ok.
809              
810             Returns undef.
811              
812             =head2 C<check_continuing_resource_regularity>
813              
814             check_continuing_resource_regularity($self, $key);
815              
816             Check parameter defined by C<$key> which is continuing resource regularity.
817              
818             Put error if check isn't ok.
819              
820             Returns undef.
821              
822             =head2 C<check_continuing_resource_type>
823              
824             check_continuing_resource_type($self, $key);
825              
826             Check parameter defined by C<$key> which is continuing resource type.
827              
828             Put error if check isn't ok.
829              
830             Returns undef.
831              
832             =head2 C<check_date>
833              
834             check_date($self, $key);
835              
836             Check parameter defined by C<$key> which is field 008 date.
837              
838             Put error if check isn't ok.
839              
840             Returns undef.
841              
842             =head2 C<check_government_publication>
843              
844             check_government_publication($self, $key);
845              
846             Check parameter defined by C<$key> which is government publication.
847              
848             Put error if check isn't ok.
849              
850             Returns undef.
851              
852             =head2 C<check_index>
853              
854             check_index($self, $key);
855              
856             Check parameter defined by C<$key> which is index.
857              
858             Put error if check isn't ok.
859              
860             Returns undef.
861              
862             =head2 C<check_item_form>
863              
864             check_item_form($self, $key);
865              
866             Check parameter defined by C<$key> which is form of item.
867              
868             Put error if check isn't ok.
869              
870             Returns undef.
871              
872             =head2 C<check_map_cartographic_material_type>
873              
874             check_map_cartographic_material_type($self, $key);
875              
876             Check parameter defined by C<$key> which is map type of cartographic material.
877              
878             Put error if check isn't ok.
879              
880             Returns undef.
881              
882             =head2 C<check_map_projection>
883              
884             check_map_projection($self, $key);
885              
886             Check parameter defined by C<$key> which is map projection.
887              
888             Put error if check isn't ok.
889              
890             Returns undef.
891              
892             =head2 C<check_map_relief>
893              
894             check_map_relief($self, $key);
895              
896             Check parameter defined by C<$key> which is map relief.
897              
898             Put error if check isn't ok.
899              
900             Returns undef.
901              
902             =head2 C<check_map_special_format>
903              
904             check_map_special_format($self, $key);
905              
906             Check parameter defined by C<$key> which is map special format characteristics.
907              
908             Put error if check isn't ok.
909              
910             Returns undef.
911              
912             =head2 C<check_modified_record>
913              
914             check_modified_record($self, $key);
915              
916             Check parameter defined by C<$key> which is modified record.
917              
918             Put error if check isn't ok.
919              
920             Returns undef.
921              
922             =head2 C<check_music_accompanying_matter>
923              
924             check_music_accompanying_matter($self, $key);
925              
926             Check parameter defined by C<$key> which is music accompanying matter.
927              
928             Put error if check isn't ok.
929              
930             Returns undef.
931              
932             =head2 C<check_music_composition_form>
933              
934             check_music_composition_form($self, $key);
935              
936             Check parameter defined by C<$key> which is music form of composition.
937              
938             Put error if check isn't ok.
939              
940             Returns undef.
941              
942             =head2 C<check_music_format>
943              
944             check_music_format($self, $key);
945              
946             Check parameter defined by C<$key> which is music format.
947              
948             Put error if check isn't ok.
949              
950             Returns undef.
951              
952             =head2 C<check_music_literary_text>
953              
954             check_music_literary_text($self, $key);
955              
956             Check parameter defined by C<$key> which is music literary text for sound recordings.
957              
958             Put error if check isn't ok.
959              
960             Returns undef.
961              
962             =head2 C<check_music_parts>
963              
964             check_music_parts($self, $key);
965              
966             Check parameter defined by C<$key> which is music parts.
967              
968             Put error if check isn't ok.
969              
970             Returns undef.
971              
972             =head2 C<check_music_transposition_and_arrangement>
973              
974             check_music_transposition_and_arrangement($self, $key);
975              
976             Check parameter defined by C<$key> which is music transposition and arrangement.
977              
978             Put error if check isn't ok.
979              
980             Returns undef.
981              
982             =head2 C<check_visual_material_running_time>
983              
984             check_visual_material_running_time($self, $key);
985              
986             Check parameter defined by C<$key> which is visual material running time for motion pictures and videorecordings.
987              
988             Put error if check isn't ok.
989              
990             Returns undef.
991              
992             =head2 C<check_visual_material_technique>
993              
994             check_visual_material_technique($self, $key);
995              
996             Check parameter defined by C<$key> which is visual material technique.
997              
998             Put error if check isn't ok.
999              
1000             Returns undef.
1001              
1002             =head2 C<check_visual_material_type>
1003              
1004             check_visual_material_type($self, $key);
1005              
1006             Check parameter defined by C<$key> which is visual material type.
1007              
1008             Put error if check isn't ok.
1009              
1010             Returns undef.
1011              
1012             =head2 C<check_target_audience>
1013              
1014             check_target_audience($self, $key);
1015              
1016             Check parameter defined by C<$key> which is target audience.
1017              
1018             Put error if check isn't ok.
1019              
1020             Returns undef.
1021              
1022             =head2 C<check_type_of_date>
1023              
1024             check_type_of_date($self, $key);
1025              
1026             Check parameter defined by C<$key> which is type of date.
1027              
1028             Put error if check isn't ok.
1029              
1030             Returns undef.
1031              
1032             =head1 ERRORS
1033              
1034             check_book_biography():
1035             Parameter '%s' has bad value.
1036             Value: %s
1037             Parameter '%s' is required.
1038             Parameter '%s' length is bad.
1039             Length: %s
1040             Value: %s
1041             Expected length: 1
1042             Parameter '%s' must be a scalar value.
1043             Reference: %s
1044              
1045             check_book_festschrift()
1046             Parameter '%s' has bad value.
1047             Value: %s
1048             Parameter '%s' is required.
1049             Parameter '%s' length is bad.
1050             Length: %s
1051             Value: %s
1052             Expected length: 1
1053             Parameter '%s' must be a scalar value.
1054             Reference: %s
1055              
1056             check_book_illustration():
1057             Parameter '%s' contains bad book illustration character.
1058             Value: %s
1059             Parameter '%s' has value with pipe character.
1060             Value: %s
1061             Parameter '%s' is required.
1062             Parameter '%s' length is bad.
1063             Length: %s
1064             Value: %s
1065             Expected length: 4
1066             Parameter '%s' must be a scalar value.
1067             Reference: %s
1068              
1069             check_book_literary_form()
1070             Parameter '%s' has bad value.
1071             Value: %s
1072             Parameter '%s' is required.
1073             Parameter '%s' length is bad.
1074             Length: %s
1075             Value: %s
1076             Expected length: 1
1077             Parameter '%s' must be a scalar value.
1078             Reference: %s
1079              
1080             check_book_nature_of_content():
1081             Parameter '%s' has bad value.
1082             Value: %s
1083             Parameter '%s' has value with pipe character.
1084             Value: %s
1085             Parameter '%s' is required.
1086             Parameter '%s' length is bad.
1087             Length: %s
1088             Value: %s
1089             Expected length: 4
1090             Parameter '%s' must be a scalar value.
1091             Reference: %s
1092              
1093             check_cataloging_source():
1094             Parameter '%s' has bad value.
1095             Value: %s
1096             Parameter '%s' is required.
1097             Parameter '%s' length is bad.
1098             Length: %s
1099             Value: %s
1100             Expected length: 1
1101             Parameter '%s' must be a scalar value.
1102             Reference: %s
1103              
1104             check_computer_file_item_form():
1105             Parameter '%s' has bad value.
1106             Value: %s
1107             Parameter '%s' is required.
1108             Parameter '%s' length is bad.
1109             Length: %s
1110             Value: %s
1111             Expected length: 1
1112             Parameter '%s' must be a scalar value.
1113             Reference: %s
1114              
1115             check_computer_file_type():
1116             Parameter '%s' has bad value.
1117             Value: %s
1118             Parameter '%s' is required.
1119             Parameter '%s' length is bad.
1120             Length: %s
1121             Value: %s
1122             Expected length: 1
1123             Parameter '%s' must be a scalar value.
1124             Reference: %s
1125              
1126             check_conference_publication():
1127             Parameter '%s' has bad value.
1128             Value: %s
1129             Parameter '%s' is required.
1130             Parameter '%s' length is bad.
1131             Length: %s
1132             Value: %s
1133             Expected length: 1
1134             Parameter '%s' must be a scalar value.
1135             Reference: %s
1136              
1137             check_continuing_resource_entry_convention():
1138             Parameter '%s' has bad value.
1139             Value: %s
1140             Parameter '%s' is required.
1141             Parameter '%s' length is bad.
1142             Length: %s
1143             Value: %s
1144             Expected length: 1
1145             Parameter '%s' must be a scalar value.
1146             Reference: %s
1147              
1148             check_continuing_resource_form_of_original_item():
1149             Parameter '%s' has bad value.
1150             Value: %s
1151             Parameter '%s' is required.
1152             Parameter '%s' length is bad.
1153             Length: %s
1154             Value: %s
1155             Expected length: 1
1156             Parameter '%s' must be a scalar value.
1157             Reference: %s
1158              
1159             check_continuing_resource_frequency():
1160             Parameter '%s' has bad value.
1161             Value: %s
1162             Parameter '%s' is required.
1163             Parameter '%s' length is bad.
1164             Length: %s
1165             Value: %s
1166             Expected length: 1
1167             Parameter '%s' must be a scalar value.
1168             Reference: %s
1169              
1170             check_continuing_resource_nature_of_content():
1171             Parameter '%s' has bad value.
1172             Value: %s
1173             Parameter '%s' has value with pipe character.
1174             Value: %s
1175             Parameter '%s' is required.
1176             Parameter '%s' length is bad.
1177             Length: %s
1178             Value: %s
1179             Expected length: 1
1180             Parameter '%s' must be a scalar value.
1181             Reference: %s
1182              
1183             check_continuing_resource_nature_of_entire_work():
1184             Parameter '%s' has bad value.
1185             Value: %s
1186             Parameter '%s' is required.
1187             Parameter '%s' length is bad.
1188             Length: %s
1189             Value: %s
1190             Expected length: 1
1191             Parameter '%s' must be a scalar value.
1192             Reference: %s
1193              
1194             check_continuing_resource_original_alphabet_or_script():
1195             Parameter '%s' has bad value.
1196             Value: %s
1197             Parameter '%s' is required.
1198             Parameter '%s' length is bad.
1199             Length: %s
1200             Value: %s
1201             Expected length: 1
1202             Parameter '%s' must be a scalar value.
1203             Reference: %s
1204              
1205             check_continuing_resource_regularity():
1206             Parameter '%s' has bad value.
1207             Value: %s
1208             Parameter '%s' is required.
1209             Parameter '%s' length is bad.
1210             Length: %s
1211             Value: %s
1212             Expected length: 1
1213             Parameter '%s' must be a scalar value.
1214             Reference: %s
1215              
1216             check_continuing_resource_type():
1217             Parameter '%s' has bad value.
1218             Value: %s
1219             Parameter '%s' is required.
1220             Parameter '%s' length is bad.
1221             Length: %s
1222             Value: %s
1223             Expected length: 1
1224             Parameter '%s' must be a scalar value.
1225             Reference: %s
1226              
1227             check_date():
1228             Parameter '%s' has bad value.
1229             Value: %s
1230             Parameter '%s' has value with pipe character.
1231             Value: %s
1232             Parameter '%s' has value with space character.
1233             Value: %s
1234             Parameter '%s' is required.
1235             Parameter '%s' length is bad.
1236             Length: %s
1237             Value: %s
1238             Expected length: 1
1239             Parameter '%s' must be a scalar value.
1240             Reference: %s
1241              
1242             check_government_publication():
1243             Parameter '%s' has bad value.
1244             Value: %s
1245             Parameter '%s' is required.
1246             Parameter '%s' length is bad.
1247             Length: %s
1248             Value: %s
1249             Expected length: 1
1250             Parameter '%s' must be a scalar value.
1251             Reference: %s
1252              
1253             check_index():
1254             Parameter '%s' has bad value.
1255             Value: %s
1256             Parameter '%s' is required.
1257             Parameter '%s' length is bad.
1258             Length: %s
1259             Value: %s
1260             Expected length: 1
1261             Parameter '%s' must be a scalar value.
1262             Reference: %s
1263              
1264             check_item_form():
1265             Parameter '%s' has bad value.
1266             Value: %s
1267             Parameter '%s' is required.
1268             Parameter '%s' length is bad.
1269             Length: %s
1270             Value: %s
1271             Expected length: 1
1272             Parameter '%s' must be a scalar value.
1273             Reference: %s
1274              
1275             check_map_cartographic_material_type():
1276             Parameter '%s' has bad value.
1277             Value: %s
1278             Parameter '%s' is required.
1279             Parameter '%s' length is bad.
1280             Length: %s
1281             Value: %s
1282             Expected length: 1
1283             Parameter '%s' must be a scalar value.
1284             Reference: %s
1285              
1286             check_map_projection():
1287             Parameter '%s' has bad value.
1288             Value: %s
1289             Parameter '%s' is required.
1290             Parameter '%s' length is bad.
1291             Length: %s
1292             Value: %s
1293             Expected length: 2
1294             Parameter '%s' must be a scalar value.
1295             Reference: %s
1296              
1297             check_map_relief():
1298             Parameter '%s' contains bad relief character.
1299             Value: %s
1300             Parameter '%s' has value with pipe character.
1301             Value: %s
1302             Parameter '%s' is required.
1303             Parameter '%s' length is bad.
1304             Length: %s
1305             Value: %s
1306             Expected length: 4
1307             Parameter '%s' must be a scalar value.
1308             Reference: %s
1309              
1310             check_map_special_format():
1311             Parameter '%s' contains bad special format characteristics character.
1312             Value: %s
1313             Parameter '%s' has value with pipe character.
1314             Value: %s
1315             Parameter '%s' is required.
1316             Parameter '%s' length is bad.
1317             Length: %s
1318             Value: %s
1319             Expected length: 2
1320             Parameter '%s' must be a scalar value.
1321             Reference: %s
1322              
1323             check_modified_record():
1324             Parameter '%s' has bad value.
1325             Value: %s
1326             Parameter '%s' is required.
1327             Parameter '%s' length is bad.
1328             Length: %s
1329             Value: %s
1330             Expected length: 1
1331             Parameter '%s' must be a scalar value.
1332             Reference: %s
1333              
1334             check_music_accompanying_matter():
1335             Parameter '%s' contains bad music accompanying matter character.
1336             Value: %s
1337             Parameter '%s' is required.
1338             Parameter '%s' must be a scalar value.
1339             Reference: %s
1340             Parameter '%s' length is bad.
1341             Length: %s
1342             Value: %s
1343             Expected length: 6
1344              
1345             check_music_composition_form():
1346             Parameter '%s' has bad value.
1347             Value: %s
1348             Parameter '%s' is required.
1349             Parameter '%s' length is bad.
1350             Length: %s
1351             Value: %s
1352             Expected length: 2
1353             Parameter '%s' must be a scalar value.
1354             Reference: %s
1355              
1356             check_music_format():
1357             Parameter '%s' has bad value.
1358             Value: %s
1359             Parameter '%s' is required.
1360             Parameter '%s' length is bad.
1361             Length: %s
1362             Value: %s
1363             Expected length: 1
1364             Parameter '%s' must be a scalar value.
1365             Reference: %s
1366              
1367             check_music_literary_text():
1368             Parameter '%s' contains bad music literary text character.
1369             Value: %s
1370             Parameter '%s' has value with pipe character.
1371             Value: %s
1372             Parameter '%s' is required.
1373             Parameter '%s' must be a scalar value.
1374             Reference: %s
1375             Parameter '%s' length is bad.
1376             Length: %s
1377             Value: %s
1378             Expected length: 2
1379              
1380             check_music_parts():
1381             Parameter '%s' has bad value.
1382             Value: %s
1383             Parameter '%s' is required.
1384             Parameter '%s' length is bad.
1385             Length: %s
1386             Value: %s
1387             Expected length: 1
1388             Parameter '%s' must be a scalar value.
1389             Reference: %s
1390              
1391             check_music_transposition_and_arrangement():
1392             Parameter '%s' has bad value.
1393             Value: %s
1394             Parameter '%s' is required.
1395             Parameter '%s' length is bad.
1396             Length: %s
1397             Value: %s
1398             Expected length: 1
1399             Parameter '%s' must be a scalar value.
1400             Reference: %s
1401              
1402             check_visual_material_running_time():
1403             Parameter '%s' contains bad visual material running time.
1404             Value: %s
1405             Parameter '%s' has value with 'n' character.
1406             Value: %s
1407             Parameter '%s' has value with dash character.
1408             Value: %s
1409             Parameter '%s' has value with pipe character.
1410             Value: %s
1411             Parameter '%s' is required.
1412             Parameter '%s' length is bad.
1413             Length: %s
1414             Value: %s
1415             Expected length: %s
1416             Parameter '%s' must be a scalar value.
1417             Reference: %s
1418              
1419             check_visual_material_technique():
1420             Parameter '%s' has bad value.
1421             Value: %s
1422             Parameter '%s' is required.
1423             Parameter '%s' length is bad.
1424             Length: %s
1425             Value: %s
1426             Expected length: 1
1427             Parameter '%s' must be a scalar value.
1428             Reference: %s
1429              
1430             check_visual_material_type():
1431             Parameter '%s' has bad value.
1432             Value: %s
1433             Parameter '%s' is required.
1434             Parameter '%s' length is bad.
1435             Length: %s
1436             Value: %s
1437             Expected length: 1
1438             Parameter '%s' must be a scalar value.
1439             Reference: %s
1440              
1441             check_target_audience():
1442             Parameter '%s' has bad value.
1443             Value: %s
1444             Parameter '%s' is required.
1445             Parameter '%s' length is bad.
1446             Length: %s
1447             Value: %s
1448             Expected length: 1
1449             Parameter '%s' must be a scalar value.
1450             Reference: %s
1451              
1452             check_type_of_date():
1453             Parameter '%s' has bad value.
1454             Value: %s
1455             Parameter '%s' is required.
1456             Parameter '%s' length is bad.
1457             Length: %s
1458             Value: %s
1459             Expected length: 1
1460             Parameter '%s' must be a scalar value.
1461             Reference: %s
1462              
1463             =head1 DEPENDENCIES
1464              
1465             L<Error::Pure>,
1466             L<Exporter>,
1467             L<List::Util>,
1468             L<Readonly>.
1469              
1470             =head1 SEE ALSO
1471              
1472             =over
1473              
1474             =item L<Data::MARC::Field008>
1475              
1476             Data object for MARC field 008.
1477              
1478             =back
1479              
1480             =head1 REPOSITORY
1481              
1482             L<https://github.com/michal-josef-spacek/Data-MARC-Field008>
1483              
1484             =head1 AUTHOR
1485              
1486             Michal Josef Špaček L<mailto:skim@cpan.org>
1487              
1488             L<http://skim.cz>
1489              
1490             =head1 LICENSE AND COPYRIGHT
1491              
1492             © 2025 Michal Josef Špaček
1493              
1494             BSD 2-Clause License
1495              
1496             =head1 ACKNOWLEDGEMENTS
1497              
1498             Development of this software has been made possible by institutional support
1499             for the long-term strategic development of the National Library of the Czech
1500             Republic as a research organization provided by the Ministry of Culture of
1501             the Czech Republic (DKRVO 2024–2028), Area 11: Linked Open Data.
1502              
1503             =head1 VERSION
1504              
1505             0.04
1506              
1507             =cut