Windows XP に Active Perl をインストールしました。Perl パッケージ マネージャーを使用して 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);
次のエラーが発生しました
C:\Perl\bin\Sequence.pl の 1 行目の @INC で Bio/Seq.pm が見つかりません。BEGIN が失敗しました。C:\Perl\bin\Sequence.pl の 1 行目でコンパイルが中止されました。
ここで何が問題なのでしょうか? BioPerl がインストールされているかどうかをどのように確認すればよいのでしょうか?
答え1
インストールされているモジュールを確認するには、ターミナルを開いて次のように入力します。
ppm query
これはActive Perlに付属するツールです(CPAN よくある質問)。
また、「シバン「使用している ( #!/usr/bin/env perl
) は、Windows システムでは動作しません。コーディングに Windows を使用したことがないので確信はありませんが、アクティブな Perl が (申し訳ありませんが) Windows が処理できる形式にアクティブに変換しない限り、これは UNIX の世界のことです。
つまり、bioperl がインストールされていないか、Perl が正しく設定されていないかのどちらかです。Perl は、@INC 変数で定義されたディレクトリ内でモジュールなどを検索します。関連するディレクトリがリスト内にあるかどうかを確認する簡単な方法は、次の簡単なワンライナーを実行することです。
perl -e "do{print \"$_\n\"}for(@INC)"
Perl がモジュールを検索するすべてのディレクトリを出力します。
PS. Linux をチェックしてみるのに良い時期かもしれません...