in reply to Hash reference
$w = "xyz"; &myfunc($a_ref->{$w}); [download]
&myfunc($a_ref->$w); # BAD &myfunc($a_ref->{$w}); # GOOD [download]
When you don't provide the braces you are no longer passing a key and expecting a value. Instead you're trying to call a function!
That's why you get the error message, can't call method on unblessed reference.. because you have a hash, not an object.