--- trunk/lib/Biblio/Isis.pm 2006/07/09 12:22:09 59 +++ trunk/lib/Biblio/Isis.pm 2006/07/09 21:36:33 61 @@ -7,7 +7,7 @@ BEGIN { use Exporter (); use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); - $VERSION = 0.21; + $VERSION = 0.22_1; @ISA = qw (Exporter); #Give a hoot don't pollute, do not export more than needed by default @EXPORT = qw (); @@ -519,6 +519,9 @@ my $hash = $isis->to_hash({ mfn => 42, include_subfields => 1, + regexps => [ + 's/something/else/g', + ], }); Each option controll creation of hash: @@ -562,6 +565,8 @@ $mfn = $arg->{mfn} || confess "need mfn in arguments"; } + 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 ] }; @@ -580,6 +585,16 @@ 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