The curlies are intentional. In my actual app, $thingy points to a complex data structure, and $key could be something like {One}[5]{France}. That's why I'm using eval with a string instead of a block.
Comment on Re^2: "eval" and "my" variable weirdness