in reply to hash o' refs

The problem is that you misunderstand how Perl parses your code. When you write &$hash{test} Perl treats that as {&$hash}{test}, $hash has not been declared, and strict informs you of that. But by adding the braces where you intended them to go you force Perl to behave as you thought it should, and it works.

Incidentally this is a case where you should send merlyn a note of personal thanks for thinking up the very nice piece of syntactic sugar: $hash{test}->();