Curiouser and curiouser...

Using just the following code:
------------------------
#!/usr/bin/perl

use MARC::File::USMARC;
my $cnt = 0;
my $file = MARC::File::USMARC->in( $ARGV[0] );

while ( my $oldmarc = $file->next() ) {
   last if $cnt > 5;  # Just for testing....
   $cnt++;

   print $oldmarc->as_usmarc();
}
------------------------

...we get the same problem (and I apologize - it's actually \x1e\x1d, not
\x0d\x0e as I (mis)typed earlier)
It looks like the as_usmarc might be adding an extra end-of-record...?
Maybe?

If I change it to this:
-----------------------
#    print $oldmarc->as_usmarc();
   my $string = $oldmarc->as_usmarc();
   $string =~ s/\x1e\x1d\x1e\x1d/\x1e\x1d/;
   print $string;
-----------------------

...then the resulting file looks right.  I don't know if this is a problem
with my source data, or if I'm not doing something MARC::Record-y properly.

Windows XP, ActiveState Perl, MARC::Record 1.38

Any thoughts?  I can send a small MARC file (5 recs) if anyone would like to
take a peek.

Thanks,
-David

Reply via email to