Bug 21908: (QA follow-up) Remove useless parentheses in query
[koha.git] / misc / link_bibs_to_authorities.pl
index b35a00e..2711d16 100755 (executable)
@@ -18,6 +18,7 @@ use Pod::Usage;
 use Data::Dumper;
 use Time::HiRes qw/time/;
 use POSIX qw/strftime ceil/;
+use Module::Load::Conditional qw(can_load);
 
 sub usage {
     pod2usage( -verbose => 2 );
@@ -53,13 +54,11 @@ if ( not $result or $want_help ) {
 
 my $linker_module =
   "C4::Linker::" . ( C4::Context->preference("LinkerModule") || 'Default' );
-eval { eval "require $linker_module"; };
-if ($@) {
+unless ( can_load( modules => { $linker_module => undef } ) ) {
     $linker_module = 'C4::Linker::Default';
-    eval "require $linker_module";
-}
-if ($@) {
-    die "Unable to load linker module. Aborting.";
+    unless ( can_load( modules => { $linker_module => undef } ) ) {
+        die "Unable to load linker module. Aborting.";
+    }
 }
 
 my $linker = $linker_module->new(
@@ -188,7 +187,7 @@ sub process_bib {
     my $linker       = shift;
     my $biblionumber = shift;
 
-    my $bib = GetMarcBiblio($biblionumber);
+    my $bib = GetMarcBiblio({ biblionumber => $biblionumber });
     unless ( defined $bib ) {
         print
 "\nCould not retrieve bib $biblionumber from the database - record is corrupt.\n";
@@ -196,9 +195,10 @@ sub process_bib {
         return;
     }
 
+    my $frameworkcode = GetFrameworkCode($biblionumber);
+
     my ( $headings_changed, $results ) =
-      LinkBibHeadingsToAuthorities( $linker, $bib,
-        GetFrameworkCode($biblionumber) );
+      LinkBibHeadingsToAuthorities( $linker, $bib, $frameworkcode );
     foreach my $key ( keys %{ $results->{'unlinked'} } ) {
         $unlinked_headings{$key} += $results->{'unlinked'}->{$key};
     }
@@ -212,11 +212,15 @@ sub process_bib {
     if ($headings_changed) {
         if ($verbose) {
             my $title = substr( $bib->title, 0, 20 );
-            print
-"Bib $biblionumber ($title): $headings_changed headings changed\n";
+            printf(
+                "Bib %12d (%-20s): %3d headings changed\n",
+                $biblionumber,
+                $title,
+                $headings_changed
+            );
         }
         if ( not $test_only ) {
-            ModBiblio( $bib, $biblionumber, GetFrameworkCode($biblionumber) );
+            ModBiblio( $bib, $biblionumber, $frameworkcode );
             $num_bibs_modified++;
         }
     }