Недостаточно аргументов в пользу ошибки Perl-модуля
Привет у меня есть скрипт на Perl feed_validator.pl
, Отсюда я вызываю модуль Perl с именем fetch_sequence_vals.pm
следующее:
my ($AIT_hash_ref,$SE_hash_ref,$SBC_hash_ref,$db_pack_val_tpb)=fetch_sequneceVals::seqVals();
fetch_sequence_vals.pm
возвращает ссылку на три хэша, как показано ниже.
return(\%AIT_hash,\%SE_hash,\%SBC_hash,$db_pack_val_tpb);
Теперь я передаю эти три хэша в качестве входных данных для двух модулей Perl с именем SortFeedSeq
а также SeqComparator
, как показано ниже.
my $sortfeedtrailer = SortFeedSeq::sortfeedseq(
$region,$sortfileout,$SortedTrailerFile,\%AIT_hash,\%SE_hash,\%SBC_hash);
my $compareseq= SeqComparator::comparator(
$region,$SortedTrailerFile,$seq_err,$gap_err,\%AIT_hash,\%SE_hash,\%SBC_hash);
Когда я бегу feed_validator.pl
выкидывает сообщение об ошибке компиляции
Not enough arguments for SortFeedSeq::sortfeedseq
а также
Not enough arguments for SeqComparator::comparator
Я застрял в этом от нескольких дней. Пожалуйста, кто-нибудь, помогите мне в решении ошибки. Заранее спасибо.
1 ответ
sortfeedseq
а также comparator
у каждого есть свой прототип. Прототип подпрограммы диктует синтаксис обращений к нему, и вы нарушаете синтаксис, наложенный прототипами этих подпрограмм. В частности, вы не передаете правильное количество аргументов подпрограммам.
Поскольку мы не знакомы с обсуждаемыми подводными лодками, мы не можем сказать, чего ожидать от аргументов. Вам придется ознакомиться с документацией по этим модулям или изучить сами сабвуферы.