X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=lib%2FBiblio%2FIsis.pm;fp=lib%2FBiblio%2FIsis.pm;h=b11e856765a728408dd7e8ad2c806fe52f4bd837;hb=21014db42d82674c10852fcd63a85f5f792326f0;hp=76f20ba3096c72c0a8c7431f57ae4d4fa6d8b1da;hpb=1d6ebdcdf8309eda34920cb9bfd785f11d6c37b2;p=Biblio-Isis diff --git a/lib/Biblio/Isis.pm b/lib/Biblio/Isis.pm index 76f20ba..b11e856 100644 --- a/lib/Biblio/Isis.pm +++ b/lib/Biblio/Isis.pm @@ -117,7 +117,7 @@ Filter code ref which will be used before data is converted to hash. =item debug -Dump a B of debugging output. +Dump a B of debugging output even at level 1. For even more increase level. =back @@ -385,6 +385,24 @@ sub fetch { return $self->{'record'}; } +=head2 mfn + +Returns current MFN position + + my $mfn = $isis->mfn; + +=cut + +# This function should be simple return $self->{current_mfn}, +# but if new is called with _hack_mfn it becomes setter. +# It's useful in tests when setting $isis->{record} directly + +sub mfn { + my $self = shift; + return $self->{current_mfn}; +}; + + =head2 to_ascii Returns ASCII output of record with specified MFN @@ -504,8 +522,13 @@ sub to_hash { foreach my $t (split(/\^/,$l)) { next if (! $t); my ($sf,$v) = (substr($t,0,1), substr($t,1)); - warn "### $k^$sf:$v",$/ if ($self->{debug} > 1); + # FIXME make this option ! + next unless ($v); +# warn "### $k^$sf:$v",$/ if ($self->{debug} > 1); + + # FIXME array return optional, by default unroll to ' ; ' if (ref( $val->{$sf} ) eq 'ARRAY') { + push @{ $val->{$sf} }, $v; } elsif (defined( $val->{$sf} )) { # convert scalar field to array @@ -631,6 +654,18 @@ module with databases from programs other than WinIsis and IsisMarc. I had tested this against ouput of one C-based application, but I don't know any details about it's version. +=head1 VERSIONS + +You can find version dependencies documented here + +=over 8 + +=item 0.20 + +Added C<< $isis->mfn >> and support for repeatable subfields + +=back + =head1 AUTHOR Dobrica Pavlinusic