Forget this. I have no idea why adding a statement AFTER the eval would suddenly make it work.In my Windows ActiveState Perl 5.8.7 it works without errors, ... sort of.The result is "thingy one is" because you have included curved brackets around the key value!. So if I change my $key = '{One}'; to my $key = 'One';, the result isbecomes "thingy one is 1->One". So clearly your eval is not doing what you think it is doing.
CountZero
"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law