gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 23:12:28 25 4
gpt4 key购买 nike

我打开了一个文件并逐行读取:

open(FH,"<","$myfile") or die "could not open $myfile: $!";
while (<FH>)
{
# ...do something
}

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

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

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

最佳答案

使用seek 倒退到文件的开头:

seek FH, 0, 0;

或者,更详细一点:

use Fcntl;
seek FH, 0, SEEK_SET;

请注意,如果您必须在输入上进行搜索,那么它会极大地限制您的工具的实用性,因为它永远不能用作过滤器。能够从管道中读取数据非常有用,您应该努力安排您的程序,以便不需要查找。

关于perl - 从已读取的文件句柄重新读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12043592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com