if but not if defined?
[migration-tools.git] / fingerprinter
index 4118fd3..a08efea 100755 (executable)
@@ -75,7 +75,7 @@ sub populate_marc {
     # date1, date2
     my $my_008 = $record->field('008');
     $my_008 = $my_008->as_string() if ($my_008);
-    unless (length $my_008 == 40)
+    unless (defined $my_008 and length $my_008 == 40)
       { print XF ">> Bad 008 field length in rec. $id\n"; return \%marc }
     $marc{date1} = substr($my_008,7,4) if ($my_008);
     $marc{date2} = substr($my_008,11,4) if ($my_008); # UNUSED
@@ -113,7 +113,7 @@ sub populate_marc {
     $marc{desc} = $record->field('300')->subfield('a') if $record->field('300');
     $marc{pages} = $1 if (defined $marc{desc} and $marc{desc} =~ /(\d+)/);
     $marc{title} = $record->field('245')->subfield('a')
-      if defined $record->field('245');
+      if $record->field('245');
     $marc{edition} = $record->field('250')->subfield('a')
       if $record->field('250');
     if ($record->field('260')) {
@@ -261,9 +261,11 @@ sub dump_exception {
     }
     print XF "Record ", $marc->{id}, " did not make the cut: ";
     print XF "Missing item_form. " unless ($marc->{item_form});
-    print XF "Missing date1. " unless (defined $marc->{date1});
-    print XF "Invalid date1: ", $marc->{date1}
-      unless (defined $marc->{date1} and $marc->{date1} =~ /\d{4}/);
+    unless (defined $marc->{date1})
+      { print XF "Missing date1. " }
+    else
+      { print XF "Invalid date1: ", $marc->{date1}
+          unless ($marc->{date1} =~ /\d{4}/); }
     print XF "Missing record_type. " unless ($marc->{record_type});
     print XF "Missing bib_lvl. " unless ($marc->{bib_lvl});
     print XF "Missing title. " unless ($marc->{title});
@@ -316,7 +318,7 @@ sub initialize {
 
 sub progress_ticker {
     return if $conf->{quiet};
-    printf("> %d (%d/s)\r", $count, ($count / (time - $start)))
+    printf("> %d (%d/s)\r", $count, ($count / (time - $start + 1)))
       if ($count % 100 == 0);
 }