Недостаточно аргументов в пользу ошибки 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 у каждого есть свой прототип. Прототип подпрограммы диктует синтаксис обращений к нему, и вы нарушаете синтаксис, наложенный прототипами этих подпрограмм. В частности, вы не передаете правильное количество аргументов подпрограммам.

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

Другие вопросы по тегам