IMO Perl should always interpret an opening brace right after the map and grep keywords, as the start of a block. There's no excuse for it, preferring to treat it as an anonymous hash.
Do you ever think you're seeing an anonymous hash in that position? I didn't think so.