in reply to curly braces inside of curly braces

The problem is that you've used not-word-characters (and I may be wording (heh) that wrong) inside the braces of a hash access making it parse as an expression instead of a bareword string. You don't need to use an intermediary, but you need to properly quote your key "string" so that it's a valid expression instead, like $test_hash{ qq{${test}_bar} } for example.

Addendum: just as you couldn't have my $foo = ${test}_bar; you'd instead need my $foo = "${test}_bar"; because the former isn't a simple bareword (but you could do my $bar = test_bar (so long as the subs strict-ness isn't in effect)).

The cake is a lie.
The cake is a lie.
The cake is a lie.