Bryan, man, that worked like a champ. Thank you so much for suggesting it. I
like its clean-ness and efficiency.
If someone else is following this in the archives, here's the final version of
my code:
#Producer information and address.
#Another field 270 could also be used for Distributor info.
if ($record{"PROD"}) { #If there's a producer's name...
my $pr = MARC::Field->new('260', ' ', ' ',
b=>$record{"PROD"},
);
$marcrecord->insert_fields_ordered($pr);
} #if there's a producer's name
#All the rest of the producer's information...
if ($record{"CONP"} ||
$record{"ADP"} ||
$record{"CTYP"} ||
$record{"STP"} ||
$record{"ZIPP"} ||
$record{"CNP"} ||
$record{"PHP"} ||
$record{"FAXP"} ||
$record{"PRODUCER_EMAIL"}
) {
my @sf; #subfields container for data
push @sf, 'a', $record{"ADP"} if $record{"ADP"};
push @sf, 'b', $record{"CTYP"} if $record{"CTYP"};
push @sf, 'c', $record{"STP"} if $record{"STP"};
push @sf, 'd', $record{"CNP"} if $record{"CNP"};
push @sf, 'e', $record{"ZIPP"} if $record{"ZIPP"};
push @sf, 'k', $record{"PHP"} if $record{"PHP"};
push @sf, 'l', $record{"FAXP"} if $record{"FAXP"};
push @sf, 'p', $record{"CONP"} if $record{"CONP"};
push @sf, 'm', $record{"PRODUCER_EMAIL"} if $record{"PRODUCER_EMAIL"};
my $marc270 = MARC::Field->new('270', '1', ' ', @sf);
$marcrecord->insert_fields_ordered($marc270);
} #If there's any producer information
Thanks, again, Bryan.
-Kevin
>>> Bryan Baldus <[EMAIL PROTECTED]> 08/03/05 03:00PM >>>
On Wednesday, August 03, 2005 12:31 PM, KEVIN ZEMBOWER wrote:
>I'd like to create a 270 field (I think) from this information. I'd like to
do something similar to this pseudo-code:
>my $mprod = MARC::Field->new('270', ' ', ' ',); #Base record
>$mprod = MARC::Field->update($mprod, a=>$ADP) if $ADP;
>$mprod = MARC::Field->update($mprod, b=>$CTYP) if $CTYP;
>$mprod = MARC::Field->update($mprod, c=>$STP) if $STP;
>....
Unless I'm mistaken, you should be able to do something similar to the above
(using the suggestions already provided by others) by building an array of
subfield code+data pairs:
push @subfields, 'a', $ADP if $ADP;
#... for each subfield element
Then, once all subfields have been added to @subfields:
$field = MARC::Field->new('270','','', @subfields);
$record->append_fields($field)
####
Please correct me if I am wrong,
Bryan Baldus
[EMAIL PROTECTED]
[EMAIL PROTECTED]
http://home.inwave.com/eija