=head2 Use of qw(...) as parentheses Historically the parser fooled itself into thinking that C literals were always enclosed in parentheses, and as a result you could sometimes omit parentheses around them: for $x qw(a b c) { ... } The parser no longer lies to itself in this way. Wrap the list literal in parentheses like this: for $x (qw(a b c)) { ... } This is being deprecated because the parentheses in C are not part of expression syntax. They are part of the statement syntax, with the C statement wanting literal parentheses. The synthetic parentheses that a C expression acquired were only intended to be treated as part of expression syntax. Note that this does not change the behaviour of cases like: use POSIX qw(setlocale localeconv); our @EXPORT = qw(foo bar baz); where parentheses were never required around the expression.