Someone decided that using `for var qw()` should be forbidden, you have to write explicitly now `for ... (qw())` instead of `qw()` beginning with 5.14. WTF

5.14 seemed to be a fine release for me, the first in a long time which is actually faster then most of the previous ones. And there were not too many languages policists.

But this new qw() deprecation warning is just pure nonsense.

`qw` used in for list where only list-context can be used should still be allowed.

Why should I be forced to update all my code to add `()` around `qw()` only because it seems to be "right". perl has let you use handy shortcuts forever.

for my $a qw() {} => for my $a (qw()) {}

$ perl5.13.5 -e 'for my $a qw(1 2) {print $a;}' Use of qw(...) as parentheses is deprecated at -e line 1.

12 $ perl5.13.4 -e 'for my $a qw(1 2) {print $a;}'

12 $ perl5.13.4 -e 'require B; B->import qw(main_root)' $ perl5.13.5 -e 'require B; B->import qw(main_root)'

Use of qw(...) as parentheses is deprecated at -e line 1.



How awful!There is no other context possible for the `qw` here thanso perl should be consistent with other list grabbing functions like printand don't enforce quotes were they are not needed.

This is certainly not DWIM, this is language police.

The language police should rather think of getting rid of more unneeded syntax, than enforcing it.

`for my $var` always should eat the next tokens as list members until the block. Parens are really not needed here.

$ perl -e 'for my $a 1,2 {print $a;}' => syntax error

There's nothing else possible than a list context after the for variable.

And why is this still not possible?

$ perl -e 'for 1,2 {print $_}' => syntax error