Are you saying you disagree with the conclusion?
Most certainly.
strict has been around as long as perl5. Which is as long as we have namespaces, and Exporter. Exporter only works by doing things strict forbids - but which weren't even possible before. So, strict forbids something that has only been possible for as long as strict exists. Not really "for backwards compatible reasons".
By the way, strict is now on by default in Perl 5.12
Except that it's not.
print $], "\n";
$foo = 3;
print $foo, "\n";
__END__
5.012001
3
Perhaps you mean that
use 5.012; implies
use strict;?
Comma in qw() is most definitely likely to be an error.
They are seldomly an error in my code (for instance, in the code shown), and nor are
#'s in my
qw's.
I for one have taken advantage of this warning a couple of times.
That I will not deny. But since the presence of commas can be detected without
running the program, I do not think checking for this at every run is required. This is something that belongs in a linter. Perlcritic is a linter, and works wonders for tons of people.