我對Perl比較陌生,所以請耐心等待。Perl:子程序的第一個參數不是類
我的子getGenes在類SequenceModule中調用getFeaturesByGeneName。第一個循環運行良好,但在第二個循環中,它試圖調用字符串$ name上的get_SeqFeatures(一個BioPerl子),這意味着它跳過了我的$ self = shift。
我錯過了什麼?
sub getGenes
{
my @names = shift;
my $genome = shift;
my @cds;
foreach my $name (@names)
{
my $feat = SequenceModule -> getFeatureByGeneName($genome, $name);
push (@cds, $feat);
}
return @cds;
}
...
sub getFeatureByGeneName
{
my $self = shift;
my $seq = shift;
my $name = shift;
my @cds = $seq -> get_SeqFeatures("CDS");
...
}
請說明。你只顯示一個循環。你期望什麼行爲? – choroba
另外,你如何調用'getGenes'? – choroba
'my @names = shift;'看起來很腥;它只會有一個元素。你可能想要更多的東西在'my($ genome,@names)= @_;'的行上。 – Slade