Actually, what it seems like to me is, your original code was trying to access an hash that hadn't been created, so it, the perl interpreter, may have thought it was a scalar with a set of braces at the end of it.
Just a thought. Anyone else have an idea?