Я установил Active Perl в Windows XP. Через Perl Package Manager я установил репозитории BioPerl. Но при попытке выполнить эту программу BioPerl:
#!/usr/bin/env perl
use Bio::Seq;
use Bio::SeqIO;
# create a sequence object of some DNA
my $seq = Bio::Seq->new(-id => 'testseq', -seq => 'CATGTAGATAG');
# print out some details about it
print "seq is ", $seq->length, " bases long\n";
print "revcom seq is ", $seq->revcom->seq, "\n";
# write it to a file in Fasta format
my $out = Bio::SeqIO->new(-file => '>testseq.fsa', -format => 'Fasta');
$out->write_seq($seq);
Происходит следующая ошибка
Невозможно найти Bio/Seq.pm в @INC в C:\Perl\bin\Sequence.pl строка 1. Ошибка BEGIN — компиляция прервана в C:\Perl\bin\Sequence.pl строка 1.
В чем тут проблема? Как определить, установлен BioPerl или нет?
решение1
Чтобы узнать, какие модули у вас установлены, откройте терминал и введите:
ppm query
Это инструмент, который поставляется с Active Perl (см.Часто задаваемые вопросы о CPAN).
Также имейте в виду, что "притон" ( #!/usr/bin/env perl
), который вы используете, не будет работать в системе Windows. Не могу сказать наверняка, так как никогда не использовал Windows для кодирования, но это свойственно миру UNIX, если только Active Perl активно (извините) не преобразует его в то, с чем может работать Windows.
Итак, либо bioperl не установлен, либо ваш Perl настроен неправильно. Perl будет искать модули и т. п. в каталогах, определенных переменной @INC. Простой способ проверить, есть ли нужный каталог в списке, — запустить этот небольшой однострочный код:
perl -e "do{print \"$_\n\"}for(@INC)"
Он выведет все каталоги, в которых Perl будет искать свои модули.
P.S. Возможно, сейчас самое время проверить Linux...