2016-02-07 2 views
2

Привет я получаю следующее сообщение об ошибке при попытке запустить Perl-скрипт:Perl - УНИВЕРСАЛЬНЫЙ не экспортирует ничего

pc:~/Phd/lenovo/programs/vep/scripts/variant_effect_predictor$ perl variant_effect_predictor.pl --help 
UNIVERSAL does not export anything at /home/arron/Phd/lenovo/programs/vep/scripts/variant_effect_predictor/Bio/Tree/TreeFunctionsI.pm line 94. 

где виновный линия:

use UNIVERSAL qw(isa) 

чем проблема?

ответ

2

Из документации Universal:

Предыдущие версии этой документации предложил использовать ISA как функцию, чтобы определить тип ссылки:

use UNIVERSAL 'isa'; 

$yes = isa $h, "HASH"; 
$yes = isa "Foo", "Bar"; 

Проблема что этот код никогда не вызовет переопределенный метод isa в любом классе. Вместо этого используйте переменный тип RefType от скаляра :: Util для первого случая:

use Scalar::Util 'reftype'; 

$yes = reftype($h) eq "HASH"; 

Так что этот метод больше не существует.

+0

спасибо, что проблема была – brucezepplin

3

Старые версии UNIVERSAL говорят

Вы можете запросить импорт трех функций (isa, can и VERSION), но эта функция устарела и будет удалена. Пожалуйста, не делайте этого в новом коде.

последняя версия просто говорит

не ЭКСПОРТ

Нет.

Смежные вопросы