4 use MARC::File::XML ( BinaryEncoding => 'utf-8' );
9 my $record_id_file = $ARGV[1];
12 open FILE, $record_id_file;
13 while (my $record_id = <FILE>) {
14 chomp($record_id); $record_ids{ $record_id } = 1;
18 my $id_tag = $ARGV[2]; my $id_subfield = $ARGV[3];
20 binmode(STDOUT, ':utf8');
21 binmode(STDIN, ':utf8');
23 foreach $argnum ( 4 .. $#ARGV ) {
25 print STDERR "Processing " . $ARGV[$argnum] . "\n";
27 my $batch = MARC::Batch->new('XML',$ARGV[$argnum]);
29 $batch->warnings_off();
33 while ( my $record = $batch->next() ) {
37 my $id = $record->field($id_tag);
39 print STDERR "ERROR: This record is missing a $id_tag field.\n" . $record->as_formatted() . "\n=====\n";
42 $id = $id->as_string($id_subfield);
44 if (! defined $record_ids{ $id }) {
45 if ($format eq 'text') {
46 print STDOUT '=-' x 39 . "\n";
47 print STDOUT $record->as_formatted() . "\n";
49 print STDOUT $record->as_xml() . "\n";
53 print STDERR "Processed $count records.\n";