$log->info("opening $format $version database '$arg->{path}'");
+ my $tag;
+ my $rec;
+
+ while( $line = <$fh> ) {
+ chomp($line);
+
+ my $v;
+
+ if ( $line =~ /^(\S\S)\s(.+)$/ ) {
+ $tag = $1;
+ $v = $2;
+ } elsif ( $line =~ /^\s{3}(.+)$/ ) {
+ $v = $1;
+ } elsif ( $line eq 'ER' ) {
+ push @{ $self->{_rec} }, $rec;
+ $rec = {};
+ $line = <$fh>;
+ chomp $line;
+ $log->logdie("expected blank like in ",$arg->{path}, " +$.: $line") unless ( $line eq '' );
+ } elsif ( $line eq 'EF' ) {
+ last;
+ } else {
+ $log->logdie("can't parse +$. $arg->{path} : $line");
+ }
+
+ push @{ $rec->{$tag} }, $v;
+
+ }
+
+ $log->debug("loaded ", $self->size, " records");
+
$self ? return $self : return undef;
}
Return record with ID C<$mfn> from database
- my $rec = $input->fetch_rec( $mfn, $filter_coderef);
+ my $rec = $input->fetch_rec( $mfn, $filter_coderef );
=cut
sub fetch_rec {
my $self = shift;
- my ($mfn, $filter_coderef) = @_;
-
- my $rec;
+ my ( $mfn, $filter_coderef ) = @_;
- return $rec;
+ return $self->{_rec}->[$mfn-1];
}
sub size {
my $self = shift;
- return 2;
+ return $#{$self->{_rec}} + 1;
}
=head1 AUTHOR