$ cat foo.pl use strict; use warnings; my ($unused, $i, $j); $i = $j; # uninitialized __END__ $ perlcritic -3 foo.pl .. "$unused" is declared but not used. at line 4, column 1. Unused variables clutter code and make it harder to read. (Severity: 3) .. #### $ perl -wle 'my $i; print $i' Use of uninitialized value in print at -e line 1. $ perl -wle 'my $i; $i += $i' Use of uninitialized value in addition (+) at -e line 1. $ perl -wle 'my $i; if ($i>0) {}' Use of uninitialized value in numeric gt (>) at -e line 1.