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.

Alex / talexb / Toronto

"Groklaw is the open-source mentality applied to legal research" ~ Linus Torvalds

Replies are listed 'Best First'.
Re^2: Surprising quirk of method call parser
by kstar (Novice) on Nov 04, 2010 at 17:28 UTC
    Alex, I can almost buy your explanation, but this code had "use strict", yet it didn't crap out with 'Global symbol "$a" requires explicit package name' (yes, I know that $a is special because of sort(); in the actual code, the variable had a different name (%Schema, to be precise), and was definitely declared as only a hash).