Avoiding error message about non-numeric comparison; reporting on tags that are not...
[migration-tools.git] / Equinox-Migration / lib / Equinox / Migration / MARCXMLSampler.pm
index 26d75ac..57098a0 100644 (file)
@@ -117,7 +117,7 @@ sub parse_record {
 sub process_field {
     my ($field) = @_;
     my $tag = $field->{'att'}->{'tag'};
-    return unless ($tag and $tag > 9);
+    return unless ($tag and ($tag =~ /[^0-9]/ or $tag > 9));
 
     # increment raw tag count
     $dstore->{tcnt}++;
@@ -142,7 +142,8 @@ sub process_subs {
     # handle unmapped tag/subs
     my $samp = $dstore->{samp};
     # set a value, total-seen count and records-seen-in count
-    $samp->{$tag}{$code}{value} = $sub->text unless $samp->{$tag}{$code};
+    $samp->{$tag}{$code}{value} = $sub->text unless ($samp->{$tag}{$code}{value} and
+                                                     $samp->{$tag}{$code}{value} =~ /\w/);
     $samp->{$tag}{$code}{count}++;
     $samp->{$tag}{$code}{tcnt}++ unless ( defined $samp->{$tag}{$code}{last} and
                                           $samp->{$tag}{$code}{last} == $dstore->{tcnt} );