35 |
|
|
36 |
=head1 VERSION |
=head1 VERSION |
37 |
|
|
38 |
Version 0.11 |
Version 0.12 |
39 |
|
|
40 |
=cut |
=cut |
41 |
|
|
42 |
our $VERSION = '0.11'; |
our $VERSION = '0.12'; |
43 |
|
|
44 |
=head1 SYNOPSIS |
=head1 SYNOPSIS |
45 |
|
|
516 |
warn "## ++ marc_compose($f,$sf,$v) ", dump( $m ),$/ if ($debug > 1); |
warn "## ++ marc_compose($f,$sf,$v) ", dump( $m ),$/ if ($debug > 1); |
517 |
} |
} |
518 |
|
|
519 |
warn "## marc_compose(d) ", dump( $m ),$/ if ($debug > 1); |
warn "## marc_compose current marc = ", dump( $m ),$/ if ($debug > 1); |
520 |
|
|
521 |
push @{ $marc_record->[ $marc_record_offset ] }, $m if ($#{$m} > 2); |
push @{ $marc_record->[ $marc_record_offset ] }, $m if ($#{$m} > 2); |
522 |
} |
} |
649 |
my $f = shift; |
my $f = shift; |
650 |
return unless (defined($rec && $rec->{$f})); |
return unless (defined($rec && $rec->{$f})); |
651 |
my $sf = shift; |
my $sf = shift; |
652 |
return map { $_->{$sf} } grep { ref($_) eq 'HASH' && $_->{$sf} } @{ $rec->{$f} }; |
return map { |
653 |
|
if (ref($_->{$sf}) eq 'ARRAY') { |
654 |
|
@{ $_->{$sf} }; |
655 |
|
} else { |
656 |
|
$_->{$sf}; |
657 |
|
} |
658 |
|
} grep { ref($_) eq 'HASH' && $_->{$sf} } @{ $rec->{$f} }; |
659 |
} |
} |
660 |
|
|
661 |
=head2 rec |
=head2 rec |
710 |
=cut |
=cut |
711 |
|
|
712 |
sub prefix { |
sub prefix { |
713 |
my $p = shift or die "prefix needs string as first argument"; |
my $p = shift or return; |
714 |
return map { $p . $_ } grep { defined($_) } @_; |
return map { $p . $_ } grep { defined($_) } @_; |
715 |
} |
} |
716 |
|
|
783 |
|
|
784 |
sub join_with { |
sub join_with { |
785 |
my $d = shift; |
my $d = shift; |
786 |
|
warn "### join_with('$d',",dump(@_),")\n" if ($debug > 2); |
787 |
my $v = join($d, grep { defined($_) && $_ ne '' } @_); |
my $v = join($d, grep { defined($_) && $_ ne '' } @_); |
788 |
return '' unless defined($v); |
return '' unless defined($v); |
789 |
return $v; |
return $v; |