--- trunk/lib/WebPAC/Input/MARC.pm 2005/12/18 23:34:24 291 +++ trunk/lib/WebPAC/Input/MARC.pm 2006/02/26 23:21:50 416 @@ -3,10 +3,7 @@ use warnings; use strict; -use blib; - -use WebPAC::Common; -use MARC::Fast; +use MARC::Fast 0.03; =head1 NAME @@ -14,11 +11,11 @@ =head1 VERSION -Version 0.01 +Version 0.05 =cut -our $VERSION = '0.01'; +our $VERSION = '0.05'; =head1 SYNOPSIS @@ -36,7 +33,8 @@ Returns handle to database my $db = $open_db( - path => '/path/to/marc.iso' + path => '/path/to/marc.iso', + filter => \&code_ref, } =cut @@ -50,10 +48,13 @@ $log->info("opening MARC database '$arg->{path}'"); - my $db = new MARC::Fast( marcdb => $arg->{path}); + my $db = new MARC::Fast( + marcdb => $arg->{path}, + hash_filter => $arg->{filter}, + ); my $db_size = $db->count - 1; # FIXME - $self->{size} = $db_size; + $self->{_marc_size} = $db_size; return ($db, $db_size); } @@ -73,15 +74,25 @@ my ($db, $mfn) = @_; - if ($mfn > $self->{size}) { - $self->_get_logger()->warn("seek beyond database size $self->{size} to $mfn"); + if ($mfn > $self->{_marc_size}) { + $self->_get_logger()->warn("seek beyond database size $self->{_marc_size} to $mfn"); } else { - my $row = $db->fetch($mfn); + my $row = $db->to_hash($mfn); push @{$row->{'000'}}, $mfn; return $row; } } +=head1 PROPERTIES + +=head2 _marc_size + +Store size of MARC database + + print $self->{_marc_size}; + + + =head1 AUTHOR Dobrica Pavlinusic, C<< >>