Adding an extra level of indirection with eval does noth solve the problem.
eval returns the value of the last expression evaluated, but that last expression would return the same value without the help of eval:
$x = 1; $y = 2; $return1 = $x + $y;
$return2 = eval { $x = 1; $y = 2; $x + $y }
If particle already knew what that last expression should be, to get the value he wants, using eval wouldn't gain him anything.
I know how to get STDIN and STDOUT, or STDIN and the exit value, but I can't figure out how to get STDOUT, STDERR, and the exit value. :(