perl – 从已读的文件句柄重新读取

前端之家收集整理的这篇文章主要介绍了perl – 从已读的文件句柄重新读取前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我打开一个文件,逐行阅读:
open(FH,"<","$myfile") or die "could not open $myfile: $!";
while (<FH>)
{
    # ...do something
}

稍后在程序中,我尝试重新读取该文件(再次通过该文件):

while (<FH>)
{
    # ...do something
}

并且意识到它就像文件中的控件是否在EOF中,并且不会在文件的第一行中迭代….这是默认行为吗?如何解决这个问题?该文件很大,我不想将内存作为数组.那么我唯一的选择是关闭并再次打开文件

解决方法

使用搜索回到文件的开头:
seek FH,0;

或者,更冗长:

use Fcntl;
seek FH,SEEK_SET;

请注意,如果您必须寻求输入,则极大地限制了您的工具的有用性,因为它不能用作过滤器.能够从管道读取是非常有用的.请记住,有57%的统计数字已经弥补,您应该意识到98%的追求自己的投入的方案是不必要的.尝试非常努力地处理您的数据,使您无需阅读两次.如果可能,您的程序将会更加有用.

猜你在找的Perl相关文章