Как я могу проверить, что версия жемчуга не больше, чем некоторое значение?

В 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";
    ...
}
5
задан brian d foy 4 September 2009 в 16:25
поделиться

3 ответа

Этот код умрет, если версия Perl выше 5.8.9:

die "woah, that is a little too new" unless $] <= 5.008009;

Подробнее о $] можно прочитать в perldoc perlvar .

23
ответ дан 18 December 2019 в 05:40
поделиться

Вы можете использовать специальную переменную $ ^ 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, вам нужно будет использовать $] , который возвращает простое целое число.

8
ответ дан 18 December 2019 в 05:40
поделиться

Самым простым решением было бы сделать следующее:

no 5.010;
0
ответ дан 18 December 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: