sending marc records into a script that uses MARC::Batch

2014-05-29 Thread John E Guillory
Hello, Two questions please: 1. I've written a script that opens a marc file for reading using this syntax: $file = $ARGV[0]; $batch = MARC::Batch->new('USMARC',$file); It then loops thru the records using this syntax: while ( $record = $batch->next()) { .check position 6, 7

Re: sending marc records into a script that uses MARC::Batch

2014-05-29 Thread Timothy Prettyman
For your first question, instead of: $batch = MARC::Batch->new(‘USMARC’,); use: $batch = MARC::Batch->new(‘USMARC’,STDIN); For your second, the error is likely caused when a field you're using as_string() on doesn't exist in the record. So, you could do something like the following: $field

RE: sending marc records into a script that uses MARC::Batch

2014-05-29 Thread John E Guillory
Thanks Timothy for your help. When processing about 5 million records I would expect some crazy records. The new script (incorporating Timothy’s suggestions) exited prematurely on record 85,877 with: “Warnings detected: Entirely empty subfield found in tag 260”. I know 260 is publication stuff

Re: sending marc records into a script that uses MARC::Batch

2014-05-29 Thread Robin Sheat
John E Guillory schreef op do 29-05-2014 om 21:13 [+]: > “Warnings detected: Entirely empty subfield found in tag 260” An entirely empty subfield is an illegally formatted thing, at least according to the rules of MARC::Record/MARC::Field, and so I assume the MARC format itself. So it's not th