7 |
BEGIN { |
BEGIN { |
8 |
use Exporter (); |
use Exporter (); |
9 |
use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); |
use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); |
10 |
$VERSION = 0.14; |
$VERSION = 0.20; |
11 |
@ISA = qw (Exporter); |
@ISA = qw (Exporter); |
12 |
#Give a hoot don't pollute, do not export more than needed by default |
#Give a hoot don't pollute, do not export more than needed by default |
13 |
@EXPORT = qw (); |
@EXPORT = qw (); |
464 |
} |
} |
465 |
], |
], |
466 |
|
|
467 |
|
In case there are repeatable subfields in record, this will create |
468 |
|
following structure: |
469 |
|
|
470 |
|
'900' => [ { |
471 |
|
'a' => [ 'foo', 'bar', 'baz' ], |
472 |
|
}] |
473 |
|
|
474 |
This method will also create additional field C<000> with MFN. |
This method will also create additional field C<000> with MFN. |
475 |
|
|
476 |
=cut |
=cut |
503 |
if ($l =~ m/\^/) { |
if ($l =~ m/\^/) { |
504 |
foreach my $t (split(/\^/,$l)) { |
foreach my $t (split(/\^/,$l)) { |
505 |
next if (! $t); |
next if (! $t); |
506 |
$val->{substr($t,0,1)} = substr($t,1); |
my ($sf,$v) = (substr($t,0,1), substr($t,1)); |
507 |
|
warn "### $k^$sf:$v",$/ if ($self->{debug} > 1); |
508 |
|
if (ref( $val->{$sf} ) eq 'ARRAY') { |
509 |
|
push @{ $val->{$sf} }, $v; |
510 |
|
} elsif (defined( $val->{$sf} )) { |
511 |
|
# convert scalar field to array |
512 |
|
$val->{$sf} = [ $val->{$sf}, $v ]; |
513 |
|
} else { |
514 |
|
$val->{$sf} = $v; |
515 |
|
} |
516 |
} |
} |
517 |
} else { |
} else { |
518 |
$val = $l; |
$val = $l; |