NAME
    Data::MARC::Leader - Data object for MARC leader.

SYNOPSIS
     use Data::MARC::Leader;

     my $obj = Data::MARC::Leader->new(%params);
     my $bibliographic_level = $obj->bibliographic_level;
     my $char_coding_scheme = $obj->char_coding_scheme;
     my $data_base_addr = $obj->data_base_addr;
     my $descriptive_cataloging_form = $obj->descriptive_cataloging_form;
     my $encoding_level = $obj->encoding_level;
     my $impl_def_portion_len = $obj->impl_def_portion_len;
     my $indicator_count = $obj->indicator_count;
     my $length = $obj->length;
     my $length_of_field_portion_len = $obj->length_of_field_portion_len;
     my $multipart_resource_record_level = $obj->multipart_resource_record_level;
     my $raw = $obj->raw;
     my $starting_char_pos_portion_len = $obj->starting_char_pos_portion_len;
     my $status = $obj->status;
     my $subfield_code_count = $obj->subfield_code_count;
     my $type = $obj->type;
     my $type_of_control = $obj->type_of_control;
     my $undefined = $obj->undefined;

METHODS
  "new"
     my $obj = Data::MARC::Leader->new(%params);

    Constructor.

    *       "bibliographic_level"

            Bibliographic level flag.

            Default values is undef.

    *       "char_coding_scheme"

            Character coding scheme.

            Default values is undef.

    *       "data_base_addr"

            Base address of data.

            Default values is undef.

    *       "descriptive_cataloging_form"

            Descriptive cataloging form.

            Default values is undef.

    *       "encoding_level"

            Encoding level.

            Default values is undef.

    *       "impl_def_portion_len"

            Length of the implementation-defined portion.

            Default values is undef.

    *       "indicator_count"

            Indicator count.

            Default values is undef.

    *       "length"

            Record length.

            Default values is undef.

    *       "length_of_field_portion_len"

            Length of the length-of-field portion.

            Default values is undef.

    *       "multipart_resource_record_level"

            Multipart resource record level.

            Default values is undef.

    *       "raw"

            Raw leader value.

            Default values is undef.

    *       "starting_char_pos_portion_len"

            Length of the starting-character-position portion.

            Default values is undef.

    *       "status"

            Record status.

            Default values is undef.

    *       "subfield_code_count"

            Subfield code count.

            Default values is undef.

    *       "type"

            Type of record.

            Default values is undef.

    *       "type_of_control"

            Type of control.

            Default values is undef.

    *       "undefined"

            Undefined.

            Default values is undef.

    Returns instance of object.

  "bibliographic_level"
     my $bibliographic_level = $obj->bibliographic_level;

    Get bibliographic level flag.

    Returns character.

  "char_coding_scheme"
     my $char_coding_scheme = $obj->char_coding_scheme;

    Get character coding scheme.

    Returns character.

  "data_base_addr"
     my $data_base_addr = $obj->data_base_addr;

    Get base address of data.

    Returns number.

  "descriptive_cataloging_form"
     my $descriptive_cataloging_form = $obj->descriptive_cataloging_form;

    Get descriptive cataloging form.

    Returns character.

  "encoding_level"
     my $encoding_level = $obj->encoding_level;

    Get encoding level.

    Returns character.

  "impl_def_portion_len"
     my $impl_def_portion_len = $obj->impl_def_portion_len;

    Get length of the implementation-defined portion.

    Returns character.

  "indicator_count"
     my $indicator_count = $obj->indicator_count;

    Get indicator count.

    Returns character.

  "length"
     my $length = $obj->length;

    Get record length.

    Returns number.

  "length_of_field_portion_len"
     my $length_of_field_portion_len = $obj->length_of_field_portion_len;

    Get length of the length-of-field portion

    Returns character.

  "multipart_resource_record_level"
     my $multipart_resource_record_level = $obj->multipart_resource_record_level;

    Get multipart resource record level.

    Returns character.

  "raw"
     my $raw = $obj->raw;

    Get raw leader value.

    Returns string.

  "starting_char_pos_portion_len"
     my $starting_char_pos_portion_len = $obj->starting_char_pos_portion_len;

    Get length of the starting-character-position portion.

    Returns character.

  "status"
     my $status = $obj->status;

    Get record status.

    Returns character.

  "subfield_code_count"
     my $subfield_code_count = $obj->subfield_code_count;

    Get subfield code count.

    Returns character.

  "type"
     my $type = $obj->type;

    Get type of record.

    Returns character.

  "type_of_control"
     my $type_of_control = $obj->type_of_control;

    Get type of control.

    Returns character.

  "undefined"
     my $undefined = $obj->undefined;

    Get undefined.

    Returns character.

ERRORS
     new():
             Parameter 'bibliographic_level' must be one of defined strings.
                     String: %s
                     Possible strings: a b c d i m s
             Parameter 'char_coding_scheme' must be one of defined strings.
                     String: %s
                     Possible strings: ' ' a
             Parameter 'descriptive_cataloging_form' must be one of defined strings.
                     String: %s
                     Possible strings: ' ' a c i n u
             Parameter 'encoding_level' must be one of defined strings.
                     String: %s
                     Possible strings: ' ' 1 2 3 4 5 7 8 u z
             Parameter 'impl_def_portion_len' must be one of defined strings.
                     String: %s
                     Possible strings: 0
             Parameter 'indicator_count' must be one of defined strings.
                     String: %s
                     Possible strings: 2
             Parameter 'length_of_field_portion_len' must be one of defined strings.
                     String: %s
                     Possible strings: 4
             Parameter 'multipart_resource_record_level' must be one of defined strings.
                     String: %s
                     Possible strings: ' ' a b c
             Parameter 'raw' has length different than '24'.
                     Value: %s
             Parameter 'starting_char_pos_portion_len' must be one of defined strings.
                     String: %s
                     Possible strings: 5
             Parameter 'status' must be one of defined strings.
                     String: %s
                     Possible strings: a c d n p
             Parameter 'subfield_code_count' must be one of defined strings.
                     String: %s
                     Possible strings: 2
             Parameter 'type' must be one of defined strings.
                     String: %s
                     Possible strings: a c d e f g i j k m o p r t
             Parameter 'type_of_control' must be one of defined strings.
                     String: %s
                     Possible strings: ' ' a
             Parameter 'undefined' must be one of defined strings.
                     String: %s
                     Possible strings: 0

EXAMPLE
     use strict;
     use warnings;

     use Data::Printer;
     use Data::MARC::Leader;

     my $obj = Data::MARC::Leader->new(
             'bibliographic_level' => 'm',
             'char_coding_scheme' => 'a',
             'data_base_addr' => 541,
             'descriptive_cataloging_form' => 'i',
             'encoding_level' => ' ',
             'impl_def_portion_len' => '0',
             'indicator_count' => '2',
             'length' => 2200,
             'length_of_field_portion_len' => '4',
             'multipart_resource_record_level' => ' ',
             'raw' => '02200cem a2200541 i 4500',
             'starting_char_pos_portion_len' => '5',
             'status' => 'c',
             'subfield_code_count' => '2',
             'type' => 'e',
             'type_of_control' => ' ',
             'undefined' => '0',
     );

     # Print out.
     p $obj;

     # Output:
     # Data::MARC::Leader  {
     #     parents: Mo::Object
     #     public methods (3):
     #         BUILD
     #         Mo::utils:
     #             check_strings
     #         Readonly:
     #             Readonly
     #     private methods (0)
     #     internals: {
     #         bibliographic_level               "m",
     #         char_coding_scheme                "a",
     #         data_base_addr                    541,
     #         descriptive_cataloging_form       "i",
     #         encoding_level                    " ",
     #         impl_def_portion_len              0,
     #         indicator_count                   2,
     #         length                            2200,
     #         length_of_field_portion_len       4,
     #         multipart_resource_record_level   " ",
     #         raw                               "02200cem a2200541 i 4500",
     #         starting_char_pos_portion_len     5,
     #         status                            "c",
     #         subfield_code_count               2,
     #         type                              "e",
     #         type_of_control                   " ",
     #         undefined                         0
     #     }
     # }

DEPENDENCIES
    Mo, Mo::utils, Readonly.

REPOSITORY
    <https://github.com/michal-josef-spacek/Data-MARC-Leader>

AUTHOR
    Michal Josef Špaček <mailto:skim@cpan.org>

    <http://skim.cz>

LICENSE AND COPYRIGHT
    © 2023-2024 Michal Josef Špaček

    BSD 2-Clause License

VERSION
    0.05

