summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2010-10-20 15:13:40 -0500
committerJesse Luehrs <doy@tozt.net>2010-10-20 15:13:40 -0500
commit26eb0e7a6a9fd292fe305e389089e4611e223e0d (patch)
treed97b2cad184da843f5211c03926d5c5372af5169
parent460a4d15ded58deecdacebbd9b68844d6768892b (diff)
downloadeval-closure-26eb0e7a6a9fd292fe305e389089e4611e223e0d.tar.gz
eval-closure-26eb0e7a6a9fd292fe305e389089e4611e223e0d.zip
die if the source doesn't return a subroutine reference
-rw-r--r--lib/Eval/Closure.pm8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/Eval/Closure.pm b/lib/Eval/Closure.pm
index 1ce0327..e45cb98 100644
--- a/lib/Eval/Closure.pm
+++ b/lib/Eval/Closure.pm
@@ -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 {