How can I add a MARC tag called SYS to a set of MARC records?
I want to loop through a set of MARC records, extract the last nine characters of the 001 field, add a new field to each record called SYS, and output the resulting data to a new file. I have the following code snippet that does the work:
# read each record
while (my $record = $batch->next()) { # get 001 field
my $field = $record->field('001')->as_string;
# create a system number, the last nine characters of $field
my $sysno = substr $field, -9, 9;
# add a sys tag
$record->append_fields(MARC::Field->new('SYS', $sysno));
# write to STDOUT
print $record->as_usmarc();}
Alas, MARC::Field says I need to include a subfield in the SYS field, but that is not what I want. I want the SYS field to contain no indicators nor subfields. I want it to be just like normal MARC tags with values less than 010.
Besides the fact that the addition of a field named SYS may be a "feature" of my integrated library system, how can I add such a field to my data?
-- Eric Lease Morgan Head, Digital Access and Information Architecture Department University Libraries of Notre Dame
(574) 631-8604
