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%的追求自己的投入的方案是不必要的.尝试非常努力地处理您的数据,使您无需阅读两次.如果可能,您的程序将会更加有用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |