On Wed, 3 Aug 2005, KEVIN ZEMBOWER wrote:
I think that what I would like to do is something like this:
if ($ADP) {
my $madp = MARC::Field->new('270',' ', '4', a=>$ADP);
$marcrecord->append_fields($madp);
}
if ($CTPY)
my $mctpy = MARC::Field->new('270',' ', '4', b=>$CTPY);
$marcrecord->append_fields($mctpy);
}
Well, one option is to follow what Paul sent to you earlier and don't
bother to check for empty references. Also check out the docs on
MARC::Field. You could always create the field and add the subfields
later.
I should warn you I haven't used MARC::Record extensively, but when I have
it's been pretty straight forward.
I think that this would create two 270 fields, one with an 'a' subfield
and one with a 'b' subfield. Is this a problem in MARC records? Does
this imply that there are two separate, different addresses? Is this the
way it's supposed to be done? I thought that I had to create a single
270 field, with the various subfields. Will this import okay into Koha?
Wow, lot of questions. Most of them seem to be the aspects same one: can
I have two fields of the same type? Yes, if they are repeatable, but
that's not what you want in this case. You do need to create one single
field, which is why the approach above won't work. Create one field, then
add subfields, or just add empty fields when creating it like Paul
suggested.
(My apologies to Paul if I'm not applying his suggestion correctly)
So a quick example might be
$record = MARC::Record->new():
$field = MARC::Field->new('270','','',
a => $ADP,
b => $CTYP,
c => $STP);
$record->append_fields($field)
So if the variables are empty, it doesn't matter because it will just lead
to an empty subfield, which Kola should ignore anyhow. (I don't know if
it does or not, but I suppose it doesn't hurt to try).
Jon Gorman