warn "<< $line\n";
if ( $line =~ m/^<(\d+)>$/ ) {
- my $expect_rec = $#{ $self->{_rec} } + 2;
- warn "wrong Ovid record number: $1 != $expect_rec" unless $1 == $expect_rec;
push @{ $self->{_rec} }, $rec if $rec;
warn "## rec = ",dump( $rec ),$/;
- $rec = { '000' => $1 };
+ my $expect_rec = $#{ $self->{_rec} } + 2;
+ warn "wrong Ovid record number: $1 != $expect_rec" unless $1 == $expect_rec;
+ $rec = { '000' => [ $1 ] };
} elsif ( $line =~ /^(\w.+)/ ) {
$tag = $1;
warn "++ $tag\n";
} elsif ( $line =~ /^\s\s(.+)/ ) {
my $v = $1;
$v =~ s{[\s\.]+$}{};
- $rec->{$tag} = $v;
+ $rec->{$tag} = [ $v ];
} else {
warn "### skip: '$line'\n";
}
# save last rec
push @{ $self->{_rec} }, $rec if $rec;
- $self->{size} = $#{ $self->{_rec} } + 1;
$log->debug("loaded ", $self->size, " records");
sub size {
my $self = shift;
- return $self->{size};
+ return $#{ $self->{_rec} } + 1;
}
=head1 AUTHOR