+ -
当前位置:首页 → 问答吧 → 能否对while(<FILE>)的遍历范围进行控制??

能否对while(<FILE>)的遍历范围进行控制??

时间:2010-12-20

来源:互联网

我有一个文件,每次只需要对连续的60行进行匹配。怎样控制while(<FILE>)的遍历范围??

比如:
$i=1,对1-60行进行匹配
$i=2,对2-61行进行匹配
.
.

行数很多,不能一次读入数组。

作者: nb509   发布时间: 2010-12-20

  1. while(<F>)
  2. {
  3. if($.>$i && $.<$i+59)
  4. {;}
  5. }
复制代码
这样是不是直接一条条读取60行,而不读取其他行?

作者: nb509   发布时间: 2010-12-20

b<a<b+59;
    恒等式啊

作者: langren868   发布时间: 2010-12-20



QUOTE:
这样是不是直接一条条读取60行,而不读取其他行?
nb509 发表于 2010-12-20 16:54




    应该还是读取全部行,只是对不匹配的不操作而已吧。

作者: x9x9   发布时间: 2010-12-20



QUOTE:
b
langren868 发表于 2010-12-20 17:00




    不会吧,$i=1时,范围是1-60,如果$.=100时,就直接跳过,不匹配。

作者: nb509   发布时间: 2010-12-20

本帖最后由 langren868 于 2010-12-20 17:14 编辑

读取全部行,这样做有意义嘛

作者: langren868   发布时间: 2010-12-20

  1. while(<F>){
  2.                 if(1..60) {print;}
  3.                 else{ last;}
  4. }
复制代码

作者: toniz   发布时间: 2010-12-20

本帖最后由 nb509 于 2010-12-20 17:46 编辑


QUOTE:
toniz 发表于 2010-12-20 17:14




    呵呵,加了else{last;}快很多。但是好像没有匹配就跳出循环了。

作者: nb509   发布时间: 2010-12-20



QUOTE:
我有一个文件,每次只需要对连续的60行进行匹配。怎样控制while()的遍历范围??

比如:
$i=1,对1-60行 ...
nb509 发表于 2010-12-20 16:35




说说你要的功能吧!!!...

不一定要执着于读60行....

作者: jason680   发布时间: 2010-12-20



QUOTE:
说说你要的功能吧!!!...

不一定要执着于读60行....
jason680 发表于 2010-12-20 17:27




我有个文本,6G,我每次需要读取60行,并对这60行查找和统计某个值出现的次数。第一次只要第1-60行数据,第二次只要第2-61行的数据,以此类推。然后把统计的数字,写入文件。

作者: nb509   发布时间: 2010-12-20