我将一些对象推入数组
my $temp1= Gene->new("id" => $temp[0],"name"=>$temp[1],"chrom"=>$temp[2], "strand"=>$temp[3],"txStart"=>$temp[4], "txEnd"=>$temp[5],"cdsStart"=>$temp[6],"cdsEnd"=>$temp[7],"exonCount"=>$temp[8],"exonStarts"=>$temp[9],"exonEnds"=>$temp[10],"score"=>$temp[11],"name2"=>$temp[12],"cdsStartStat"=>$temp[13],"cdsEndStat"=>$temp[14],"exonFrames"=>$temp[15]);
push(@genes,$temp1);
但是当我使用for循环来获取数组中的每个对象时,
for(my $t=0; $t <= $genes; $t++){
my $g=$genes[$t];
my $k = -1;
print $g->get_name,"\n";
似乎没有按顺序。原点是
NR_046018
NR_024540
NR_106918
NR_107062
NR_036051
.....
但是当我打印名称时,它似乎是for循环中的随机输出
NR_046018
NR_106918
NR_036051
NR_036267
NR_026820
NR_039983
NM_001005221
答案 0 :(得分:0)
for(my $t=0; $t <= $genes; $t++)
应该是
for(my $t=0; $t <= $#genes; $t++)
和use strict;
会给你一个关于这个错字的提示。