in reply to How Can I Know If a Package is "Real"?

How about over-riding eval so that you can compare the environment before and after executing the eval?

eval isn't directly over-rideable, but with PPI and a small source filter (eeuuww!) maybe you can replace all the evals with my_evals. my_eval would have a prototype and take a string parameter or a sub-ref, so that it should "just work" with both string- and block-evals.