BEGIN {
use Exporter ();
use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
- $VERSION = 0.22_1;
+ $VERSION = 0.22;
@ISA = qw (Exporter);
#Give a hoot don't pollute, do not export more than needed by default
@EXPORT = qw ();
read_fdt => 1,
include_deleted => 1,
hash_filter => sub {
- my $v = shift;
+ my ($v,$field_number) = @_;
$v =~ s#foo#bar#g;
},
debug => 1,
=item hash_filter
-Filter code ref which will be used before data is converted to hash.
+Filter code ref which will be used before data is converted to hash. It will
+receive two arguments, whole line from current field (in C<< $_[0] >>) and
+field number (in C<< $_[1] >>).
=item debug
my $hash = $isis->to_hash({
mfn => 42,
include_subfields => 1,
- regexps => [
- 's/something/else/g',
- ],
});
Each option controll creation of hash:
$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 ] };
# 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
=over 8
+=item 0.22
+
+Added field number when calling C<hash_filter>
+
=item 0.21
Added C<join_subfields_with> to L</new> and L</to_hash>.