perl 可以循环中重复打开同一个文件多次吗?
foreach(@name){if($v==$line_number){print"$name[$j]\t$w\n";}$v=0;openPF,"<",$proordie...
foreach(@name){
if($v==$line_number){
print "$name[$j]\t$w\n";
}
$v=0;
open PF,"<",$pro or die "can't read $pro:$!\n";
while(<IN>){
chomp;
@info=split/\t/,$_;
print @name;
if($info[0] eq $name[$j]){
print "@info\n";
last;
}
$v++;
}
close PF;
$j++;
}
@name是已经存好的数组,可是在循环中输出时却总是报错,而且@name数组中的值也莫名其妙的变了,为什么?
while(<IN>)是笔误,应该是PF 展开
if($v==$line_number){
print "$name[$j]\t$w\n";
}
$v=0;
open PF,"<",$pro or die "can't read $pro:$!\n";
while(<IN>){
chomp;
@info=split/\t/,$_;
print @name;
if($info[0] eq $name[$j]){
print "@info\n";
last;
}
$v++;
}
close PF;
$j++;
}
@name是已经存好的数组,可是在循环中输出时却总是报错,而且@name数组中的值也莫名其妙的变了,为什么?
while(<IN>)是笔误,应该是PF 展开
2个回答
展开全部
感觉你的意思是下面的
遍历name数组,找到文件中匹配到第一列和名字一样的,
打印该行的内容和行号
for $j(0..@name){
$v=0;
open PF,"<",$pro or die "can't read $pro:$!\n";
while(<PF>){
chomp;
@info=split/\t/,$_;
if($info[0] eq $name[$j]){
print "@info\n";
last;
}
$v++;
}
close PF;
if($v == $line_number){
print "$name[$j]\t$v\n";
}
}
追问
是这个意思,可为什么我的程序不可以呢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询