В Perl умрите (), когда подпрограммы не будут переданы достаточно параметров. Это препятствует тому, чтобы Вы получили отказы, что необходимо проследить 10 уровней через стек.
sub foo {
my $param0 = shift or confess "param0 is a required param";
my $param1 = shift or confess "param1 is a required param";
my $param2 = shift or confess "param2 is a required param";
...
}
Этот код умрет, если версия Perl выше 5.8.9:
die "woah, that is a little too new" unless $] <= 5.008009;
Подробнее о $]
можно прочитать в perldoc perlvar
.
Вы можете использовать специальную переменную $ ^ V
для проверьте версию. Из perldoc perlvar :
$^V
The revision, version, and subversion of the Perl interpreter, represented as a
version object.
This variable first appeared in perl 5.6.0; earlier versions of perl will see an
undefined value. Before perl 5.10.0 $^V was represented as a v-string.
Вы можете использовать $ ^ V при сравнении строк, например
if ( $^V lt 'v5.10.0' )
Если вы работаете на perl ранее, чем 5.6.0, вам нужно будет использовать $]
, который возвращает простое целое число.
Самым простым решением было бы сделать следующее:
no 5.010;