@ -817,36 +817,36 @@ sub get_keywords {
## loop over all 6XX fields
foreach my $ kwfield ( @ keywords ) {
if ( $ kwfield != undef ) {
## authornames get special treatment
if ( $ fieldname eq "600" ) {
my $ val = normalize_author ( $ kwfield - > subfield ( 'a' ) , $ kwfield - > subfield ( 'b' ) , $ kwfield - > subfield ( 'c' ) , $ kwfield - > indicator ( '1' ) ) ;
push @ kw , $ val ;
print "<marc>Field $kwfield subfield a:" , $ kwfield - > subfield ( 'a' ) , "\r\n<marc>Field $kwfield subfield b:" , $ kwfield - > subfield ( 'b' ) , "\r\n<marc>Field $kwfield subfield c:" , $ kwfield - > subfield ( 'c' ) , "\r\n" if $ marcprint ;
}
else {
## retrieve all available subfields
my @ kwsubfields = $ kwfield - > subfields ( ) ;
## loop over all available subfield tuples
foreach my $ kwtuple ( @ kwsubfields ) {
## loop over all subfields to check
foreach my $ subfield ( @ subfields ) {
## [0] contains subfield code
if ( @$ kwtuple [ 0 ] eq $ subfield ) {
## [1] contains value, remove trailing separators
@$ kwtuple [ 1 ] =~ s% *[,;.:/]*$%% ;
if ( length ( @$ kwtuple [ 1 ] ) > 0 ) {
push @ kw , @$ kwtuple [ 1 ] ;
print "<marc>Field $fieldname subfield $subfield:" , @$ kwtuple [ 1 ] , "\r\n" if $ marcprint ;
}
## we can leave the subfields loop here
last ;
}
}
}
}
}
if ( $ kwfield != undef ) {
## authornames get special treatment
if ( $ fieldname eq "600" ) {
my $ val = normalize_author ( $ kwfield - > subfield ( 'a' ) , $ kwfield - > subfield ( 'b' ) , $ kwfield - > subfield ( 'c' ) , $ kwfield - > indicator ( '1' ) ) ;
push @ kw , $ val ;
print "<marc>Field $kwfield subfield a:" , $ kwfield - > subfield ( 'a' ) , "\r\n<marc>Field $kwfield subfield b:" , $ kwfield - > subfield ( 'b' ) , "\r\n<marc>Field $kwfield subfield c:" , $ kwfield - > subfield ( 'c' ) , "\r\n" if $ marcprint ;
}
else {
## retrieve all available subfields
my @ kwsubfields = $ kwfield - > subfields ( ) ;
## loop over all available subfield tuples
foreach my $ kwtuple ( @ kwsubfields ) {
## loop over all subfields to check
foreach my $ subfield ( @ subfields ) {
## [0] contains subfield code
if ( @$ kwtuple [ 0 ] eq $ subfield ) {
## [1] contains value, remove trailing separators
@$ kwtuple [ 1 ] =~ s% *[,;.:/]*$%% ;
if ( length ( @$ kwtuple [ 1 ] ) > 0 ) {
push @ kw , @$ kwtuple [ 1 ] ;
print "<marc>Field $fieldname subfield $subfield:" , @$ kwtuple [ 1 ] , "\r\n" if $ marcprint ;
}
## we can leave the subfields loop here
last ;
}
}
}
}
}
}
return @ kw ;
}
@ -940,28 +940,28 @@ sub pool_subx {
## loop over all notefields
foreach my $ notefield ( @ notefields ) {
if ( defined $ notefield ) {
## retrieve all available subfield tuples
my @ notesubfields = $ notefield - > subfields ( ) ;
## loop over all subfield tuples
foreach my $ notetuple ( @ notesubfields ) {
## loop over all subfields to check
foreach my $ subfield ( @ subfields ) {
## [0] contains subfield code
if ( @$ notetuple [ 0 ] eq $ subfield ) {
## [1] contains value, remove trailing separators
print "<marc>field $fieldname subfield $subfield: " , @$ notetuple [ 1 ] , "\r\n" if $ marcprint ;
@$ notetuple [ 1 ] =~ s% *[,;.:/]*$%% ;
if ( length ( @$ notetuple [ 1 ] ) > 0 ) {
## add to list
push @ { $ aref } , @$ notetuple [ 1 ] ;
}
last ;
}
}
}
}
if ( defined $ notefield ) {
## retrieve all available subfield tuples
my @ notesubfields = $ notefield - > subfields ( ) ;
## loop over all subfield tuples
foreach my $ notetuple ( @ notesubfields ) {
## loop over all subfields to check
foreach my $ subfield ( @ subfields ) {
## [0] contains subfield code
if ( @$ notetuple [ 0 ] eq $ subfield ) {
## [1] contains value, remove trailing separators
print "<marc>field $fieldname subfield $subfield: " , @$ notetuple [ 1 ] , "\r\n" if $ marcprint ;
@$ notetuple [ 1 ] =~ s% *[,;.:/]*$%% ;
if ( length ( @$ notetuple [ 1 ] ) > 0 ) {
## add to list
push @ { $ aref } , @$ notetuple [ 1 ] ;
}
last ;
}
}
}
}
}
}