From 35ece7daeefce6d7f52e06f6515e9494dd19c112 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Thu, 6 Mar 2014 16:00:19 +0100 Subject: [PATCH] fix indicators, skip fields >= 900 --- AlephTR.pm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/AlephTR.pm b/AlephTR.pm index 16f4dfa..611cd44 100644 --- a/AlephTR.pm +++ b/AlephTR.pm @@ -133,6 +133,9 @@ warn "parse $nr"; sub field { my ( $f, $v ) = @_; + + return if $f >= 900; # skip local fields + $v =~ s/\Q \E/ /gs; $v =~ s/\s+$//gs; warn "## $f\t[$v]\n"; @@ -155,12 +158,17 @@ warn "## ++ ", dump( $f, $v ); } my ($i1,$i2) = (' ',' '); - ($i1,$i2) = ($2,$3 || ' ') if $f =~ s/^(...)(.)(.)?/$1/; + ($i1,$i2) = ($2,$3) if $f =~ s/^(...)(.)(.)?/$1/; my @sf = split(/\|/, $v); @sf = map { s/^(\w)\s+//; { $1 => $_ } } @sf; #warn "## sf = ", dump(@sf); - $marc->add_fields( $f, $i1, $i2, @sf ); + $i1 ||= ' '; + $i2 ||= ' '; + eval { + $marc->add_fields( $f, $i1, $i2, @sf ); warn "## ++ ", dump( $f, $i1, $i2, @sf ); + }; + warn "SKIP: $@" if $@; } $html =~ s|\s*?]*class=td1[^>]*>(.+?)\s*?(.+?)\s*|field($1,$2)|ges; -- 2.20.1