当前位置: 技术问答>linux和unix
关于perl 的问题!!!!!(急)
来源: 互联网 发布时间:2016-10-20
本文导语: foreach $tempkey(@$counter_array) { print $tempkey; print "n"; while (defined($codeline=)) { next if($codeline =~ /^=/); print $codeline; if($codeline =~ /^$tempkey[=]$tempkey/) { print "匹配"; $delete_counter{$count}=1; ...
foreach $tempkey(@$counter_array)
{
print $tempkey;
print "n";
while (defined($codeline=))
{
next if($codeline =~ /^=/);
print $codeline;
if($codeline =~ /^$tempkey[=]$tempkey/)
{
print "匹配";
$delete_counter{$count}=1;
}
}
$count = $count+1;
}
这是一个sub里的一段代码。
上面的一小段代码,while只进去了一遍,不知道问什么,很着急?
@counter_array是包含多个数据的数组。每次外面的foreach循环 都会执行print $tempkey;
但是 只有第一次近while循环,剩下两次都没有进。
COUNTERCODE 是一个文件,内容如下:
=
READTIME=READTIME
WRITETIME=WRITETIME
AVREADQ=AVREADQ
AVWRITEQ=AVWRITEQ
不知道为什么会这样!!!!!请高手指点。
|
第一次循环后,文件已经到达文件尾,再次循环后当然不进了,需要让文件句柄指向文件头
|
我最近也在学习perl 我有个方法 就是打开文件一次 使用完了就关闭 下次用的时候再打开 可以解决你这个问题