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