in reply to Error - Global variable ....

Using strict you enable some compile-time sanity checks that make the compilation fail in various cases. One of these cases is when you use variables without either declaring them with my or via the vars pragma; this lets you easily spot typos in variables names and avoid hours of head-banging on the keyboard (and saves your keyboard as bonus).

warnings are somewhat less vexating, but produces some notification run-time messages when a weird condition arises. For example, when you print or otherwise "use" an undef variable, it warns you that this is happening, and that it's probably something that you should avoid.

For a somewhat frustrated dissertation about the whole issue, you can read On Commenting Out 'use strict;'.

Flavio
perl -ple'$_=reverse' <<<ti.xittelop@oivalf

Don't fool yourself.