in reply to Fatal warnings?

What if you don't want to use warnings (or maybe it's not available for a particular build) then you could always add a
local $SIG{__WARN__} = sub { die $_[0] if $_[0] =~ /uninitialized/; };
to the top of your script or perhaps a
BEGIN { $SIG{__WARN__} = sub { die $_[0] if $_[0] =~ /uninitialized/; print STDERR $_[0]; }; }.

Updated 2nd code snippet to output non-fatal warnings.