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:
option is included to support lagacy application written against version
older than 0.21 of this module. By default, it disabled. See L</to_hash>.
-=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
my $hash = $isis->to_hash({
mfn => 42,
include_subfields => 1,
- regexps => [
- 's/something/else/g',
- ],
});
Each option controll creation of hash:
Define delimiter which will be used to join repeatable subfields. You can
specify option here instead in L</new> if you want to have per-record control.
-=item regexpes
-
-Override C<regexpes> specified in L</new>.
-
=back
=cut
$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 ] };
# 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