Ok, I am a big advocator of using the strict
pragmas as well as the diagnostics
when necessary. With that said, how does a novice distinguish between a warning an error. Consider the following 1 liner
perl -e "my $foo; my $bar = 3; $bar += $foo; print $bar"
perl -Mwarnings -e "my $foo; my $bar = 3; $bar += $foo; print $bar"
Perl's DWYMery silently converts undef to 0 for us without warnings producing the correct answer in both cases but with warnings it warns
me of a potential
problem. In fact, Perl isn't consistent in its warnings:
# ++ is a short cut for $foo = $foo + 1
perl -Mwarnings -e "my $foo; $foo++; print $foo"