Thanks!
The script returns an error msg:
Global symbol "$f500" requires explicit package name at s.pl line ###
Execution of s.pl aborted due to compilation errors.
The $f500 was deleted in the earlier loop. Was that the cause?
BTW, was there a difference between the close curly bracket with
or without semicolon ( } and }; ) ?
--Jackie
On Tue, 3 Aug 2004, Timothy Prettyman wrote:
> In your foreach loop, you write a new 534 for every 500 that you find. The
> first one has the subfield a from it, the 2nd one has a subfield a from the
> first and second, etc. What you really want to do is something like:
>
> if (@f500s) {
> my @subfields = ();
> foreach my $f500 (@f500s) {
> $f500->subfield('a')) and do {
> push (@subfields, 'n', $f500->subfield('a'));
> $record->delete_field($f500);
> };
> }
> (@subfields) and do {
> my $new534 = MARC::Field->new('534', '', '', @subfields);
> $record->insert_fields_after($f500, $new534);
> };
> }
>
> Tim Prettyman
> University of Michigan Library
>
> --On Tuesday, August 3, 2004 10:24 AM -0400 Jackie Shieh <[EMAIL PROTECTED]>
> wrote:
>
> >
> > I am deconstructing multiple 500 note fields and putting
> > the data in subfield n of 534 (Notes to original version).
> >
> > When there are more than one 500 notes, this script creates
> > two 534 fields, one with the first previously 500 note field
> > in subfield n, and the other 534 field with two 500 note
> > fields. Instead of one single 534 with as many subfield
> > n's corresponding to the original 500 note fields. Can
> > someone help decipher this for me? Where did it go wrong?!
> >
> >## if present, put data in variable to use in 534$n
> >
> > if ( @f500s ) {
> > my @subfields = ();
> >
> > ## examine each one
> > foreach my $f500 (@f500s) {
> > my $n534=$f500->subfield('a');
> > push(@subfields, 'n', $n534);
> >
> > ##begin to put 500 a to 534 n
> >
> > my $new534 = MARC::Field->new( '534','','', @subfields);
> > $record->insert_fields_after($f500, $new534);
> > $record->delete_field($f500);
> > }
> >
> > }
> >
> ># if 500 is not repsent, create a brand new 534
> >
> > else {
> > my $new534 = MARC::Field->new( '534', '','', 'p', 'Transcribed
> > from: ');
> > $record->insert_fields_after($f260, $new534);
> >
> > }
> >
> >
> > ================================================================
> > Input file contains:
> >
> > 500 _a"London : Spottiswoodes and Shaw"--T.p. verso.
> > 500 _a"Notes" (p. [31]-39) contain extracts from Sir J. Malcolm's
> > "Central India" regarding Ahalya Baee.
> >
> >
> > Output file results:
> >
> > 534 _n"London : Spottiswoodes and Shaw"--T.p. verso.
> > 534 _n"London : Spottiswoodes and Shaw"--T.p. verso.
> > _n"Notes" (p. [31]-39) contain extracts from Sir J. Malcolm's
> > "Central India" regarding Ahalya Baee.
> > =====================================================================
> >
> > Thanks for any help!!
> >
> > Best,
> >
> > --Jackie
> >
> >| Jackie Shieh
> >| Special Projects & Collections Team
> >| Harlan Hatcher Graduate Library
> >| University of Michigan
> >| 920 North University
> >| Ann Arbor, MI 48109-1205
> >| Phone: 734.936.2401 FAX: 734.615.9788
> >| E-mail: [EMAIL PROTECTED]
> >