in reply to cause perl to die on use of unintialized variables

The warnings pragma has a FATAL option:

use warnings FATAL => 'uninitialized';

This has a lexical scope, so you have to enable it in every scope in which you want it to take effect. See perllexwarn. Alternately you can set up your own global warn handler by sticking a code ref in $SIG{__WARN__}, but that's uglier.