Windows XP에 Active Perl을 설치했습니다. 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);
다음과 같은 오류가 발생하고 있습니다
C:\Perl\bin\Sequence.pl line1의 @INC에서 Bio/Seq.pm을 찾을 수 없습니다. BEGIN 실패 - C:\Perl\bin\Sequence.pl line1에서 컴파일이 중단되었습니다.
여기서 문제는 무엇입니까? BioPerl이 설치되어 있는지 여부를 어떻게 확인할 수 있나요?
답변1
어떤 모듈을 설치했는지 확인하려면 터미널을 열고 다음을 입력하세요.
ppm query
이것은 Active Perl과 함께 제공되는 도구입니다(참조:CPAN FAQ).
또한 "오두막" ( #!/usr/bin/env perl
) 사용하고 있는 것은 Windows 시스템에서는 작동하지 않습니다. 저는 코딩을 위해 Windows를 사용한 적이 없기 때문에 확신할 수 없지만 Active Perl이 적극적으로(죄송합니다) Windows가 처리할 수 있는 모든 것으로 변환하지 않는 한 그것은 UNIX 세계의 일입니다. 와 함께.
따라서 bioperl이 설치되지 않았거나 Perl이 올바르게 설정되지 않았습니다. Perl은 @INC 변수에 의해 정의된 디렉토리에서 모듈 등을 검색합니다. 관련 디렉토리가 목록에 있는지 확인하는 간단한 방법은 다음과 같은 작은 라이너를 실행하는 것입니다.
perl -e "do{print \"$_\n\"}for(@INC)"
Perl이 모듈을 검색하는 모든 디렉토리를 인쇄합니다.
추신. 지금이 Linux를 확인해 볼 수 있는 좋은 시간이 될 것입니다.