Ich habe Active Perl in Windows XP installiert. Über den Perl Package Manager habe ich BioPerl-Repositorys installiert. Aber beim Versuch, dieses BioPerl-Programm auszuführen:
#!/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);
Der folgende Fehler tritt auf
Bio/Seq.pm in @INC unter C:\Perl\bin\Sequence.pl, Zeile 1, kann nicht gefunden werden. BEGIN ist fehlgeschlagen – Kompilierung unter C:\Perl\bin\Sequence.pl, Zeile 1, abgebrochen.
Was ist hier das Problem? Wie kann ich feststellen, ob BioPerl installiert ist oder nicht?
Antwort1
Um herauszufinden, welche Module Sie installiert haben, öffnen Sie ein Terminal und geben Sie ein:
ppm query
Dies ist ein Tool, das mit Active Perl mitgeliefert wird (sieheHäufig gestellte Fragen zu CPAN).
Bedenken Sie auch, dass die „siebang" ( #!/usr/bin/env perl
) das Sie verwenden, funktioniert nicht auf einem Windows-System. Ich kann nicht sicher sein, da ich noch nie Windows zum Codieren verwendet habe, aber das ist eine Sache der UNIX-Welt, es sei denn, Active Perl übersetzt es aktiv (Entschuldigung) in das, was Windows verarbeiten kann.
Entweder ist bioperl nicht installiert oder Ihr Perl ist nicht richtig eingerichtet. Perl sucht nach Modulen und dergleichen in den Verzeichnissen, die durch die Variable @INC definiert sind. Eine einfache Möglichkeit zu prüfen, ob das entsprechende Verzeichnis in der Liste enthalten ist, besteht darin, diesen kleinen Einzeiler auszuführen:
perl -e "do{print \"$_\n\"}for(@INC)"
Es werden alle Verzeichnisse gedruckt, in denen Perl nach seinen Modulen sucht.
PS: Dies könnte ein guter Zeitpunkt sein, sich Linux einmal anzuschauen ...