--- trunk/lib/WebPAC/Normalize.pm 2006/07/10 10:16:11 595 +++ trunk/lib/WebPAC/Normalize.pm 2006/07/23 20:19:56 603 @@ -35,11 +35,11 @@ =head1 VERSION -Version 0.14 +Version 0.15 =cut -our $VERSION = '0.14'; +our $VERSION = '0.15'; =head1 SYNOPSIS @@ -525,6 +525,9 @@ 'c', rec('200','c') ); +If you specify C<+> for subfield, value will be appended +to previous defined subfield. + =cut sub marc_compose { @@ -542,8 +545,12 @@ next unless (defined($v) && $v !~ /^\s*$/); from_to($v, 'iso-8859-2', $marc_encoding) if ($marc_encoding); - push @$m, ( $sf, $v ); warn "## ++ marc_compose($f,$sf,$v) ", dump( $m ),$/ if ($debug > 1); + if ($sf ne '+') { + push @$m, ( $sf, $v ); + } else { + $m->[ $#$m ] .= $v; + } } warn "## marc_compose current marc = ", dump( $m ),$/ if ($debug > 1); @@ -679,6 +686,7 @@ my $f = shift; return unless (defined($rec && $rec->{$f})); my $sf = shift; + warn "rec2($f,$sf) = ", dump( $rec->{$f} ), $/ if ($debug > 1); return map { if (ref($_->{$sf}) eq 'ARRAY') { @{ $_->{$sf} };