用perl 处理,如何使循环体中的数组元素不被清除掉. 10
open(FE,">lenseq1.seq");while(defined($nextname=<*.txt>)){open(FILE,$nextname);@line=...
open(FE,">lenseq1.seq");
while(defined($nextname=<*.txt>)){
open(FILE,$nextname);
@line=length<FILE>;
print FE @line;
@all=();
push(@all,@line);
print @all;
close(FILE);
}
print @all;
@all=sort {$a<=>$b}@all;
print FE "the max number=$all[0]\nthe min number=$all[$#a]\n";
close(FE);
#数组@all中总是只有最后一次循环的结果. 展开
while(defined($nextname=<*.txt>)){
open(FILE,$nextname);
@line=length<FILE>;
print FE @line;
@all=();
push(@all,@line);
print @all;
close(FILE);
}
print @all;
@all=sort {$a<=>$b}@all;
print FE "the max number=$all[0]\nthe min number=$all[$#a]\n";
close(FE);
#数组@all中总是只有最后一次循环的结果. 展开
1个回答
展开全部
难道不是每次循环都清空@all吗(@all=();)?每次循环都清空一次,当然只有最后一次的结果了。
追问
对,就是每次都会清除掉,但是我想要每次循环的结果在一个数组里.
追答
那就在循环外再建一个数组@total好了
open(FE,">lenseq1.seq");
@total=();#######################添加
while(defined($nextname=)){
open(FILE,$nextname);
@line=length;
print FE @line;
@all=();
push(@total,@line);################修改
print @all;
close(FILE);
}
print @total;#####################修改
@total=sort {$a$b}@total;#######修改
print FE "the max number=$total[0]\nthe min number=$total[$#a]\n";;#######修改close(FE);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询