perl程序执行流程,望指教![已解决]

改成我给的那一行...就可以看到输出了...


QUOTE:
原帖由 apile 于 2008-1-25 08:47 发表
改成我给的那一行...就可以看到输出了...

这两个不是等价的吗?
print if ($.>=1 && $.<=4);
print if 1..4
我刚查了一下perldoc perlop
发现是我错了..Sorry

QUOTE:
           if (101 .. 200) { print; } # print 2nd hundred lines, short for
                                      #   if ($. == 101 .. $. == 200) ...

while (<FH>){                #while[2]
  print $.;
  if(1..4){
    print ;
  }
}

刚刚加了一行...就可以知道为什麽错了...
因为$. 累加上去了.....
所以还要做一个动作 $. = 0;



QUOTE:
原帖由 apile 于 2008-1-25 08:47 发表
改成我给的那一行...就可以看到输出了...

apile大神,你那个也得不出正确结论,你大概忽略了一点东西……

就是他用了seek并不会reset $.
seek里面说,$.仍然会按原来的数字持续增加,所以,文件句柄重置了,$.行数确是原来的
所以,不能打印,如果在
seek(FH,0,0);后面加条$.=0;就好了

貌似失言结果,在while(<FH>)的循环内
if(1..4)的效果和if($.>=1 && $.<=4)一样……
太神奇诡异了……,我真晕了
LZ 抱歉啦....因为没花太多时间看问题想解决方法....下次改进...

perljoker的方法是对的...
哈哈,让我也"拽"了一回
我也是看大骆驼才发现的,很有点意思,呵呵 .谢谢大家的解答,谢谢了!