---
name: "MARC::Spec::Field"
section: "3pm"
platform: "linux"
package: "libmarc-spec-perl"
version: "2.0.3-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MARC::Spec::Field"
---

# MARC::Spec::Field(3pm)

field specification

## NAME

MARC::Spec::Field - field specification

## SYNOPSIS

```
    use MARC::Spec::Field;

    my $field = MARC::Spec::Field->new('246');
    say ref $field;           # MARC::Spec::Field
    say $field->tag;          # 246
    say $field->index_start;  # 0
    say $field->index_end;    # '#'
```

## DESCRIPTION

MARC::Spec::Field is the field specification of a MARC::Spec.

See MARCspec - A common MARC record path language \<http://marcspec.github.io/MARCspec/\> for further  details on the syntax.

## METHODS

Some methods are inherited from MARC::Spec::Structure.

### new(Str)

Create a new MARC::Spec::Field instance. Parameter must be a valid MARCspec field tag.

### 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.

### to\_string

Returns the spec as a string.

## PREDICATES

Some predicates are inherited from MARC::Spec::Structure.

### 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

Some attributes are inherited from MARC::Spec::Structure.

### base

Obligatory. Scalar. The base Field spec without subspecs.

### tag

Obligatory. The field tag.

### char\_pos

If defined, the character position or range. Only present if MARC::Spec::Field::$char\_start is defined.

### 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::Field::$char\_start is defined.

### char\_length

The difference of MARC::Spec::Field::$char\_start and MARC::Spec::Field::$char\_end if both are numeric (or else -1). Only present if MARC::Spec::Field::$char\_start is defined.

### char\_pos

If defined, the character position or range. Only present if MARC::Spec::Field::$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::Field::$index\_start and MARC::Spec::Field::$index\_end if both are numeric. Default is -1.

### subspecs

Optional. An array of instances of MARC::Spec::Subspec, thus all subspecs in this  array MUST be validated as a combination with the boolean 'AND', and/or an array of arrays (AoA) of instances of MARC::Spec::Subspec, thus all subspecs  in this AoA must be validated as a combination with the boolean 'OR'.

See MARC::Spec::Subspec for description of attributes of MARC::Spec::Subspec.

## 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

- •

  MARC::Spec

- •

  MARC::Spec::Subfield

- •

  MARC::Spec::Indicator

- •

  MARC::Spec::Subspec

- •

  MARC::Spec::Structure

- •

  MARC::Spec::Comparisonstring

- •

  MARC::Spec::Parser
