NAME

MARC::Spec::Structure - base class

SYNOPSIS

use MARC::Spec::Field;

# create a new field
my $field = MARC::Spec::Field->new('246');

# field does inherit all attributes, predicates and methods
say $field->DOES('MARC::Spec::Structure'); # 1

DESCRIPTION

Is the base class for MARC::Spec::Field and MARC::Spec::Subfield.

METHODS

set_index_start_end (Str)

Sets MARC::Spec::Structure::$index_start and MARC::Spec::Structure::$index_end from an index position or range.

set_char_start_end (Str)

Sets MARC::Spec::Structure::$char_start and MARC::Spec::Structure::$char_end from an character position or range.

add_subspec(MARC::Spec::Subspec)

Appends a subspec to the array of the attribute subspecs. Parameter must be an instance of MARC::Spec::Subspec.

add_subspecs(ArrayRef[MARC::Spec::Subspec])

Appends subspecs to the array of the attribute subspecs. Parameter must be an ArrayRef and elements must be instances of MARC::Spec::Subspec.

PREDICATES

has_char_start

True if attribute char_start has an value and false otherwise.

has_char_end

True if attribute char_end has an value and false otherwise.

has_char_pos

True if attribute char_pos has an value and false otherwise.

has_subspecs

Returns true if attribute subspecs has an value and false otherwise.

ATTRIBUTES

base

Obligatory. Scalar. Normalized MARCspec without Subspecs.

char_start

If defined, the beginning character position of a character position or range.

char_end

If defined, the ending character position of a character position or range. Only present if MARC::Spec::Structure::$char_start is defined.

char_length

The difference of MARC::Spec::Structure::$char_start and MARC::Spec::Structure::$char_end if both are numeric (or else -1). Only present if MARC::Spec::Structure::$char_start is defined.

char_pos

If defined, the character position or range. Only present if MARC::Spec::Structure::$char_start is defined.

index_start

Obligatory. The beginning index of field repetitions. Maybe a positiv integer or the character '#'. Default is 0.

index_end

Obligatory. The ending index of field repetitions. Maybe a positiv integer or the character '#'. Default is '#'.

index_length

Obligatory. The difference of MARC::Spec::Structure::$index_start and MARC::Spec::Structure::$index_end if both are numeric. Default is -1.

AUTHOR

Carsten Klee <klee at cpan.org>

CONTRIBUTORS

  • Johann Rolschewski, <jorol at cpan>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Carsten Klee.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

BUGS

Please report any bugs to https://github.com/MARCspec/MARC-Spec/issues

SEE ALSO