4 use MARC::File::USMARC;
6 my $file = MARC::File::USMARC->in( $ARGV[0] );
7 while ( my $marc = $file->next() ) {
8 my @cns = $marc->field('001'); # grabs all of them
11 $cn = $marc->field('001')->data(); # grabs the first
12 $marc->delete_fields(@cns); # deletes all of them
14 my @sources = $marc->field('003'); # etc
17 $source = $marc->field('003')->data();
18 $marc->delete_fields(@sources);
20 my @tags035 = $marc->field('035');
21 my $tag035 = $marc->field('035');
22 my $tag035a = defined $tag035 ? $tag035->subfield('a') : undef;
23 $marc->delete_fields(@tags035);
29 if (defined $source) {
30 push @arr, "($source) $cn";
34 if (defined $tag035a) {
38 my $new035 = MARC::Field->new(@arr);
39 $marc->insert_fields_ordered($new035);
41 print $marc->as_usmarc();