diff options
author | Jesse Luehrs <doy@tozt.net> | 2010-10-20 15:13:40 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2010-10-20 15:13:40 -0500 |
commit | 26eb0e7a6a9fd292fe305e389089e4611e223e0d (patch) | |
tree | d97b2cad184da843f5211c03926d5c5372af5169 | |
parent | 460a4d15ded58deecdacebbd9b68844d6768892b (diff) | |
download | eval-closure-26eb0e7a6a9fd292fe305e389089e4611e223e0d.tar.gz eval-closure-26eb0e7a6a9fd292fe305e389089e4611e223e0d.zip |
die if the source doesn't return a subroutine reference
-rw-r--r-- | lib/Eval/Closure.pm | 8 |
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 { |