文件句柄是不是只能使用一次?

文件句柄是不是只能使用一次?

我的脚本如下:
@lines=grep(/pattern1/,<FILE>;
print @lines;

while(<FILE>{
    chomp;
    push @group,$1 if /pattern2(\w+)/i;
}
print "@group";
发现后面的列表group里面没有东西,while<FILE>没有读入.
如果把while放到grep的前面,则while段落OK,grep没东西。
望哪位大侠解救?
不胜感激!
<>是一次读取一行 读到文件尾 读取后无法回头再读一次

在循环之前加:seek FILE,0,0;

重新定位到文件开头


QUOTE:
原帖由 xiaoyu9805119 于 2008-10-16 16:02 发表
在循环之前加:seek FILE,0,0;

重新定位到文件开头

哦,多谢!
如果一个文件要反复读,是不是只能不断的用seek重新定位到文件开头?
可以把内容写到列表里去,然后对列表进行操作。
恩,是的。
原来总觉得好像只写个<>比较简单,多用一个列表变量好像不简洁。
谢谢阿!
多次读取同一个文件大部分情况下都是设计有问题
多次读写一个文件多慢阿。。。。。效率阿。。。。
哦,想多次读,那么刚开始就可以直接读到数组中嘛,当然限于内容较少的文件。不过,如果你要反复利用某个文件的话,你完全可以读一次,并把自己需要的信息全部读到数组或hash里存好啊。恩,可能真的是设计上有点问题。