3 use MARC::File::XML ( BinaryEncoding => 'utf-8' );
5 use Unicode::Normalize;
8 my @desired_tags_subfields = ();
9 foreach my $argnum ( 1 .. $#ARGV) {
10 push @desired_tags_subfields, $ARGV[$argnum];
15 binmode(STDOUT, ':utf8');
16 binmode(STDIN, ':utf8');
18 foreach my $argnum ( 0 .. 0 ) {
20 print STDERR "Processing " . $ARGV[$argnum] . "\n";
22 my $batch = MARC::Batch->new('XML',$ARGV[$argnum]);
24 $batch->warnings_off();
26 while ( my $record = $batch->next() ) {
30 print STDERR "WARNINGS: Record $count : " . join(":",@warnings) . " : continuing...\n" if ( @warnings );
32 for (my $i = 0; $i < scalar(@desired_tags_subfields); $i+=2) {
33 my @tags; if ($record->field($desired_tags_subfields[$i])) { @tags = $record->field($desired_tags_subfields[$i]); }
34 foreach my $f ( @tags ) {
35 if ($f->subfield($desired_tags_subfields[$i+1])) {
36 print STDOUT $f->subfield($desired_tags_subfields[$i+1]) . "\t";
43 print STDERR "Processed $count records\n";