Probably because "my @foo{qw(a b c)} = (1 .. 3)" indicates to the compiler that you're trying to create a list, but it then sees the {} and gets confuzzled.
Update: If you don't use strict and you don't use my or our, the compiler is fine. :)
Comment on Re: Re: How I learned to stop worrying and love the hash slice. (boo)