in reply to Surprising quirk of method call parser
In Perl, braces are used to force the parser to evaluate those items first. You've solved the issue by putting braces around your hash access, so this means the parser was reading your code left to right, $obj->$meth followed by {a}, which it presumably hated.
In Section
Seekers of Perl Wisdom