[ ... ] creates an anonymous list reference (from the given hash). And @{ ... } dereferences the anonymous list reference. And then the double quotes interpolate the elements with spaces.
That's an array reference, not a list reference. Run perldoc -q "difference between" (or check out perldoc.com's version) for a discussion on the difference. I'm sorry to be such a terminology nazi, but this is quickly becoming a pet-peeve of mine. :-)