The decision to parse an opening curly bracket as a block or a hash ref is really just a heuristic. When the parser sees a string quote, it decides in favor of the hash ref, whereas a variable makes it assume a block.
Or put differently, the parser cheats as hell, and sometimes that backfires. But not always.
|