82 |
warn "<< $line\n"; |
warn "<< $line\n"; |
83 |
|
|
84 |
if ( $line =~ m/^<(\d+)>$/ ) { |
if ( $line =~ m/^<(\d+)>$/ ) { |
|
my $expect_rec = $#{ $self->{_rec} } + 2; |
|
|
warn "wrong Ovid record number: $1 != $expect_rec" unless $1 == $expect_rec; |
|
85 |
push @{ $self->{_rec} }, $rec if $rec; |
push @{ $self->{_rec} }, $rec if $rec; |
86 |
warn "## rec = ",dump( $rec ),$/; |
warn "## rec = ",dump( $rec ),$/; |
87 |
$rec = { '000' => $1 }; |
my $expect_rec = $#{ $self->{_rec} } + 2; |
88 |
|
warn "wrong Ovid record number: $1 != $expect_rec" unless $1 == $expect_rec; |
89 |
|
$rec = { '000' => [ $1 ] }; |
90 |
} elsif ( $line =~ /^(\w.+)/ ) { |
} elsif ( $line =~ /^(\w.+)/ ) { |
91 |
$tag = $1; |
$tag = $1; |
92 |
warn "++ $tag\n"; |
warn "++ $tag\n"; |
93 |
} elsif ( $line =~ /^\s\s(.+)/ ) { |
} elsif ( $line =~ /^\s\s(.+)/ ) { |
94 |
my $v = $1; |
my $v = $1; |
95 |
$v =~ s{[\s\.]+$}{}; |
$v =~ s{[\s\.]+$}{}; |
96 |
$rec->{$tag} = $v; |
$rec->{$tag} = [ $v ]; |
97 |
} else { |
} else { |
98 |
warn "### skip: '$line'\n"; |
warn "### skip: '$line'\n"; |
99 |
} |
} |
102 |
|
|
103 |
# save last rec |
# save last rec |
104 |
push @{ $self->{_rec} }, $rec if $rec; |
push @{ $self->{_rec} }, $rec if $rec; |
|
$self->{size} = $#{ $self->{_rec} } + 1; |
|
105 |
|
|
106 |
$log->debug("loaded ", $self->size, " records"); |
$log->debug("loaded ", $self->size, " records"); |
107 |
|
|
135 |
|
|
136 |
sub size { |
sub size { |
137 |
my $self = shift; |
my $self = shift; |
138 |
return $self->{size}; |
return $#{ $self->{_rec} } + 1; |
139 |
} |
} |
140 |
|
|
141 |
=head1 AUTHOR |
=head1 AUTHOR |