From e097fc45055977cf4a759dd1d9dc107d648a2539 Mon Sep 17 00:00:00 2001 From: dbs Date: Tue, 2 Jun 2009 13:54:04 +0000 Subject: [PATCH] Don't go stampeding towards the location subfields! Return gracefully if the MFHD record contains no 852 field, rather than erroring out git-svn-id: svn://svn.open-ils.org/ILS/trunk@13287 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/perlmods/OpenILS/Utils/MFHDParser.pm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Utils/MFHDParser.pm b/Open-ILS/src/perlmods/OpenILS/Utils/MFHDParser.pm index ad85797ef4..eb9998ad10 100644 --- a/Open-ILS/src/perlmods/OpenILS/Utils/MFHDParser.pm +++ b/Open-ILS/src/perlmods/OpenILS/Utils/MFHDParser.pm @@ -54,7 +54,7 @@ Returns a Perl hash containing fields of interest from the MFHD record sub mfhd_to_hash { my ($self, $mfhd_xml) = @_; - my $location; + my $location = ''; my $holdings = []; my $supplements = []; my $indexes = []; @@ -68,9 +68,11 @@ sub mfhd_to_hash { my $marc = MARC::Record->new_from_xml($mfhd_xml); my $mfhd = MFHD->new($marc); - foreach my $subfield_ref ($marc->field('852')->subfields) { - my ($subfield, $data) = @$subfield_ref; - $location .= $data . " -- "; + foreach my $field ($marc->field('852')) { + foreach my $subfield_ref ($field->subfields) { + my ($subfield, $data) = @$subfield_ref; + $location .= $data . " -- "; + } } $location =~ s/ -- $//; -- 2.11.0