X-Git-Url: http://git.rot13.org/?p=Biblio-Isis;a=blobdiff_plain;f=lib%2FBiblio%2FIsis.pm;h=96e14d92d43688c0465f312db3c016c28c803cb8;hp=a7c73ed856cd7bb65c65d4d3a9dab6945da4655c;hb=02bc52c86c5997410f90477bba81271e64502a32;hpb=ccd149ffc018f03512152049212379a3a3817571 diff --git a/lib/Biblio/Isis.pm b/lib/Biblio/Isis.pm index a7c73ed..96e14d9 100644 --- a/lib/Biblio/Isis.pm +++ b/lib/Biblio/Isis.pm @@ -84,14 +84,11 @@ Open ISIS database read_fdt => 1, include_deleted => 1, hash_filter => sub { - my $v = shift; + my ($v,$field_number) = @_; $v =~ s#foo#bar#g; }, debug => 1, join_subfields_with => ' ; ', - regexps => [ - 's/something/else/g', - ], ); Options are described below: @@ -129,12 +126,6 @@ Define delimiter which will be used to join repeatable subfields. This option is included to support lagacy application written against version older than 0.21 of this module. By default, it disabled. See L. -=item regexpes - -Define (any number) of regexpes to apply at field values before they are -splitted into subfield. This is great place to split subfields in input to -mulitple subfields if needed or rename subfields. - =back =cut @@ -528,9 +519,6 @@ There is also more elaborative way to call C like this: my $hash = $isis->to_hash({ mfn => 42, include_subfields => 1, - regexps => [ - 's/something/else/g', - ], }); Each option controll creation of hash: @@ -558,10 +546,6 @@ have original record subfield order and index to that subfield like this: Define delimiter which will be used to join repeatable subfields. You can specify option here instead in L if you want to have per-record control. -=item regexpes - -Override C specified in L. - =back =cut @@ -578,10 +562,6 @@ sub to_hash { $mfn = $arg->{mfn} || confess "need mfn in arguments"; } - $arg->{regexpes} ||= $self->{regexpes}; - - confess "regexps must be HASH" if ($arg->{regexps} && ref($arg->{regexps}) ne 'HASH'); - # init record to include MFN as field 000 my $rec = { '000' => [ $mfn ] }; @@ -596,20 +576,10 @@ sub to_hash { # filter output if ($self->{'hash_filter'}) { - $l = $self->{'hash_filter'}->($l); + $l = $self->{'hash_filter'}->($l, $f_nr); next unless defined($l); } - # apply regexps - if ($arg->{regexps} && defined($arg->{regexps}->{$f_nr})) { - confess "regexps->{$f_nr} must be ARRAY" if (ref($arg->{regexps}->{$f_nr}) ne 'ARRAY'); - my $c = 0; - foreach my $r (@{ $arg->{regexps}->{$f_nr} }) { - while ( eval '$l =~ ' . $r ) { $c++ }; - } - warn "## field $f_nr triggered $c regexpes\n" if ($c && $self->{debug}); - } - my $val; my $r_sf; # repeatable subfields in this record