die if the source doesn't return a subroutine reference
Jesse Luehrs [Wed, 20 Oct 2010 20:13:40 +0000 (15:13 -0500)]
lib/Eval/Closure.pm

index 1ce0327..e45cb98 100644 (file)
@@ -59,7 +59,13 @@ sub _clean_eval_closure {
     }
 
     my $code = eval _make_source(@_);
-    ($code, $@);
+
+    if (!ref($code) || ref($code) ne 'CODE') {
+        undef $code;
+        $@ = "The 'source' parameter must return a subroutine reference";
+    }
+
+    return ($code, $@);
 }
 
 sub _make_source {