summaryrefslogtreecommitdiffstats
path: root/lib/Eval/Closure.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Eval/Closure.pm')
-rw-r--r--lib/Eval/Closure.pm8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Eval/Closure.pm b/lib/Eval/Closure.pm
index 4a39ed2..ccd2bbc 100644
--- a/lib/Eval/Closure.pm
+++ b/lib/Eval/Closure.pm
@@ -36,11 +36,13 @@ String eval is often used for dynamic code generation. For instance, C<Moose>
uses it heavily, to generate inlined versions of accessors and constructors,
which speeds code up at runtime by a significant amount. String eval is not
without its issues however - it's difficult to control the scope it's used in
-(which determines which variables are in scope inside the eval).
+(which determines which variables are in scope inside the eval), and it's easy
+to miss compilation errors, since eval catches them and sticks them in $@
+instead.
-This module attempts to solve this problem. It provides an C<eval_closure>
+This module attempts to solve these problems. It provides an C<eval_closure>
function, which evals a string in a clean environment, other than a fixed list
-of specified variables.
+of specified variables. Compilation errors are rethrown automatically.
=cut