Hi Jon, > You should be able to create a MARC::Record object via MARC::File::USMARC from > string (see decode).
> my $MARC = MARC::File::USMARC->decode($rawMARC); This looks like what I need. However, (arggh) now I am getting this error message when I try to use that line of code: "Can't locate object method "decode" via package "MARC::File::USMARC" at spco-export.pl line 404." I'm getting tired and punchy, so will take it up again tomorrow. > If however you mean by the MARC blob you don't have a "complete" record but > part, I'm less sure how to do that. Yes, I the MARC blob is a complete record. Thanks for the help! -- Michael # Michael Doran, Systems Librarian # University of Texas at Arlington # 817-272-5326 office # 817-688-1926 mobile # do...@uta.edu # http://rocky.uta.edu/doran/ > -----Original Message----- > From: Gorman, Jon [mailto:jtgor...@illinois.edu] > Sent: Thursday, January 06, 2011 6:19 PM > To: Doran, Michael D; perl4lib > Subject: RE: MARC blob to MARC::Record object > > > > > How do I make the MARC blob into a MARC::Record object (without having > > to first save it a file and read it in with MARC::File/Batch)? The > > MARC blob is already in a variable, so it doesn't make sense (to me) to > > write it out to a file just so I can read it back in. Unless I have > > to, natch. > > > > You should be able to create a MARC::Record object via MARC::File::USMARC from > string (see decode). An example below > http://search.cpan.org/dist/MARC-Record/lib/MARC/File/USMARC.pm > > > So with per/Voyager I know I've done something like: > > Had a query ... > SELECT BIB_ID, record_segment, seqnum > FROM UIUDB.BIB_DATA > WHERE BIB_ID = ? > ORDER BY seqnum ASC; > > I prepare/execute that query with something like: > > $getBibRecordH->execute($row->{'BIBID'}) or $logger->logdie("Could not > execute query to get Bib Record"); > while (my ($rec_id, $recseg, $seqnum) = $getBibRecordH->fetchrow_array) { > $rawMARC .= $recseg ; > } > > > > my $MARC = MARC::File::USMARC->decode($rawMARC); > > > There's also some nice ways if you're only using certain parts of the record > to apply a filter, although I don't have any examples off-hand. > > If however you mean by the MARC blob you don't have a "complete" record but > part, I'm less sure how to do that. I'd just pull in the entire file. > > Jon Gorman > University of Illinois > > > > > > > -- Michael > > > > # Michael Doran, Systems Librarian > > # University of Texas at Arlington > > # 817-272-5326 office > > # 817-688-1926 mobile > > # do...@uta.edu > > # http://rocky.uta.edu/doran/