RE: Extra record separators

[email protected] ("David Christensen")
Newsgroups perl.perl4lib
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.