Bug 6877 - use is executed and errors at compile time
authorColin Campbell <colin.campbell@ptfs-europe.com>
Sat, 17 Sep 2011 11:45:09 +0000 (12:45 +0100)
committerPaul Poulain <paul.poulain@biblibre.com>
Fri, 25 Nov 2011 13:17:58 +0000 (14:17 +0100)
Although use is being called in an eval it will still be executed
at compile time so that an error can cause the script to abort before
the eval is executed. The eval expression syntax is not checked
so eval block should be preferred.
Use require/import which execute at runtime which is the intention
here.

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
checked that, with Libravatar OK things are still OK

opac/opac-detail.pl
opac/opac-showreviews.pl

index e2fb069..f82dde2 100755 (executable)
@@ -603,9 +603,14 @@ $template->param(
 );
 
 my $libravatar_enabled = 0;
-eval 'use Libravatar::URL';
-if (!$@ and C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto')) {
-    $libravatar_enabled = 1;
+if ( C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto')) {
+    eval {
+        require Libravatar::URL;
+        Libravatar::URL->import();
+    };
+    if (!$@ ) {
+        $libravatar_enabled = 1;
+    }
 }
 
 my $reviews = getreviews( $biblionumber, 1 );
index 3a74270..24ac312 100755 (executable)
@@ -66,9 +66,14 @@ if($format eq "rss"){
 }
 
 my $libravatar_enabled = 0;
-eval 'use Libravatar::URL';
-if (!$@ and C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto')) {
-    $libravatar_enabled = 1;
+if ( C4::Context->preference('ShowReviewer') and C4::Context->preference('ShowReviewerPhoto')) {
+    eval {
+        require Libravatar::URL;
+        Libravatar::URL->import();
+    };
+    if ( !$@ ) {
+        $libravatar_enabled = 1;
+    }
 }
 
 my $reviews = getallreviews(1,$offset,$results_per_page);