r1760@llin: dpavlin | 2009-04-20 15:44:39 +0200
[webpac2] / lib / WebPAC / Input / Ovid.pm
index 1ac1967..9663473 100644 (file)
@@ -82,18 +82,18 @@ sub new {
                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";
                }
@@ -102,7 +102,6 @@ sub new {
 
        # save last rec
        push @{ $self->{_rec} }, $rec if $rec;
-       $self->{size} = $#{ $self->{_rec} } + 1;
 
        $log->debug("loaded ", $self->size, " records");
 
@@ -136,7 +135,7 @@ Return number of records in database
 
 sub size {
        my $self = shift;
-       return $self->{size};
+       return $#{ $self->{_rec} } + 1;
 }
 
 =head1 AUTHOR