504 |
my ($i1,$i2) = defined($marc_indicators->{$f}) ? @{ $marc_indicators->{$f} } : (' ',' '); |
my ($i1,$i2) = defined($marc_indicators->{$f}) ? @{ $marc_indicators->{$f} } : (' ',' '); |
505 |
my $m = [ $f, $i1, $i2 ]; |
my $m = [ $f, $i1, $i2 ]; |
506 |
|
|
507 |
|
warn "### marc_compose input subfields = ", dump(@_),$/ if ($debug > 2); |
508 |
|
|
509 |
while (@_) { |
while (@_) { |
510 |
my $sf = shift or die "marc_compose $f needs subfield"; |
my $sf = shift or die "marc_compose $f needs subfield"; |
511 |
my $v = shift; |
my $v = shift; |
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 |
} |
} |
662 |
=cut |
=cut |
663 |
|
|
664 |
sub rec { |
sub rec { |
665 |
|
my @out; |
666 |
if ($#_ == 0) { |
if ($#_ == 0) { |
667 |
return rec1(@_); |
@out = rec1(@_); |
668 |
} elsif ($#_ == 1) { |
} elsif ($#_ == 1) { |
669 |
return rec2(@_); |
@out = rec2(@_); |
670 |
|
} |
671 |
|
if (@out) { |
672 |
|
return @out; |
673 |
|
} else { |
674 |
|
return ''; |
675 |
} |
} |
676 |
} |
} |
677 |
|
|
777 |
|
|
778 |
sub join_with { |
sub join_with { |
779 |
my $d = shift; |
my $d = shift; |
780 |
return join($d, grep { defined($_) && $_ ne '' } @_); |
warn "### join_with('$d',",dump(@_),")\n" if ($debug > 2); |
781 |
|
my $v = join($d, grep { defined($_) && $_ ne '' } @_); |
782 |
|
return '' unless defined($v); |
783 |
|
return $v; |
784 |
} |
} |
785 |
|
|
786 |
=head2 split_rec_on |
=head2 split_rec_on |