Jarich, thank you very much for expressing so clearly what it also my point. Yes, we may be "backward compatibility nazis" like some people are saying, but those people should know that for most companies out there, Perl is just like AWK, except more powerful. You expect it to always works the same way you expect the Sun to raise each morning.
Also, to illustrate what Jarich said, here is a ~250 lines module which is perfectly valid and working Perl code:
$ perl -c BigBrother.pm
BigBrother.pm syntax OK
Now, let's say that strict is enabled by default:
$ perl -Mstrict -c BigBrother.pm
Global symbol "$DEBUG" requires explicit package name at BigBrother.pm line 33.
Global symbol "$script" requires explicit package name at BigBrother.pm line 40.
Global symbol "$BBHOME" requires explicit package name at BigBrother.pm line 49.
Global symbol "$line" requires explicit package name at BigBrother.pm line 53.
[ cut 88 lines or errors ]
Global symbol "$hosts" requires explicit package name at BigBrother.pm line 129.
Global symbol "%host" requires explicit package name at BigBrother.pm line 129.
BEGIN not safe after errors--compilation aborted at BigBrother.pm line 130.
Oops! You just broke the monitoring system of more machines than you ever met in your whole life.
Read More