From 794dc9df98d2aaf2f143f32ac7dfa42fa46ce07e Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 2 Aug 2011 01:10:22 -0500 Subject: compile each thing in a separate package, to avoid leakage --- lib/Eval/Closure.pm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/Eval/Closure.pm b/lib/Eval/Closure.pm index 23cf250..42c20da 100644 --- a/lib/Eval/Closure.pm +++ b/lib/Eval/Closure.pm @@ -207,14 +207,18 @@ sub _clean_eval_closure { } } +$Eval::Closure::SANDBOX_ID = 0; + sub _clean_eval { - package # hide from PAUSE - Eval::Closure::Sandbox; - local $@; - local $SIG{__DIE__}; - my $compiler = eval $_[0]; - my $e = $@; - return [ $compiler, $e ]; + $Eval::Closure::SANDBOX_ID++; + return eval <