Ответ Дейва уверен, что это лучший выбор для описанного варианта использования.
Вот еще одно решение, которое демонстрирует использование обработчика предупреждающего сигнала (см. http://perldoc.perl.org/functions/warn.html).
Преимуществоиспользование обработчика сигнала - это гибкость: вы можете перехватывать любые предупреждения, анализировать их, а затем реализовывать любое поведение, которое вам нравится. В данном случае это избыточное, но может быть полезно в более сложных случаях.
use strict;
use warnings;
use feature "say";
local $SIG{__WARN__} = sub {
if ($_[0] =~ /^Use of uninitialized value/) {
die $_[0];
} else {
warn $_[0] ;
}
};
my $foo;
say "Foo is $foo";
say "Dont get here";