加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 22:03:23 所属栏目:大数据 来源:网络整理
导读:我打开一个文件,逐行阅读: open(FH,"","$myfile") or die "could not open $myfile: $!";while (FH){ # ...do something} 稍后在程序中,我尝试重新读取该文件(再次通过该文件): while (FH){ # ...do something} 并且意识到它就像文件中的控件是否在EOF中,
我打开一个文件,逐行阅读:
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%的追求自己的投入的方案是不必要的.尝试非常努力地处理您的数据,使您无需阅读两次.如果可能,您的程序将会更加有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读