11 my $class = ref($proto) || $proto;
14 my $last_enum = undef;
16 $self->{CAPTION} = $caption;
19 $self->{PATTERN} = {};
20 $self->{COPY} = undef;
21 $self->{UNIT} = undef;
23 foreach my $subfield ($caption->subfields) {
24 my ($key, $val) = @$subfield;
27 } elsif ($key =~ /[a-h]/) {
28 # Enumeration Captions
29 $self->{ENUMS}->{$key} = {CAPTION => $val,
37 } elsif ($key =~ /[i-m]/) {
39 $self->{CHRONS}->{$key} = $val;
40 } elsif ($key eq 'u') {
41 # Bib units per next higher enumeration level
42 carp('$u specified for top-level enumeration')
43 unless defined($last_enum);
44 $self->{ENUMS}->{$last_enum}->{COUNT} = $val;
45 } elsif ($key eq 'v') {
46 carp '$v specified for top-level enumeration'
47 unless defined($last_enum);
48 $self->{ENUMS}->{$last_enum}->{RESTART} = ($val eq 'r');
49 } elsif ($key =~ /[npw-z]/) {
50 # Publication Pattern ('o' == type of unit, 'q'..'t' undefined)
51 $self->{PATTERN}->{$key} = $val;
52 } elsif ($key eq 'o') {
55 } elsif ($key eq 't') {
58 carp "Unknown caption subfield '$key'";
62 bless ($self, $class);
72 return $self->{ENUMS}->{$key}->{CAPTION};
74 return $self->{CAPTION};