I have a file of usmarc records which I want to read into a program and print to a file as MARC xml. Here's my program so far:
#########################################################
#!/usr/local/bin/perl
use strict;
use warnings;
use MARC::Record;
use MARC::Batch;
use MARC::File::XML;
my $infile = 'updated_dissertation_records';
my $file = MARC::File::XML->out('updated_dissertation_records.xml', 'UTF-8' );
my $batch = MARC::Batch->new( 'USMARC', $infile);
for (my $i = 0; $i < 3; $i++) {
my $record = $batch->next();
$file->write($record);
}
#########################################################
First question -- I can't get past the my $file = MARC::File::XML->out('updated_dissertation_records.xml', 'UTF-8' );
statement. When I run the program, that line gets the error:
usage $fh->binmode([LAYER]) at /usr/local/perl/5.8/lib/site_perl/5.8.7/MARC/File/XML.pm line 195
Two -- does the "$file->write()" statement expect a MARC::Record object, an XML stream, or a marc record string? I've assumed a MARC::Record object. If it expects an XML stream, what is the best method for what I'm trying to do to get my marc record into an appropriate XML stream?