【发布时间】:2015-08-09 18:12:21
【问题描述】:
我对 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");
...
}
【问题讨论】:
-
请澄清。您只显示一个循环。你期望什么行为?
-
还有,你怎么称呼
getGenes? -
my @names = shift;看起来很可疑;它只会有一个元素。你可能想要更多类似my ($genome, @names) = @_;的东西。
标签: perl subroutine