perl - 刷新行阅读运算符 Perl

标签 perl file-io filestream

在 perl 中使用 <> 运算符达到 eof 后会发生什么?

我正在逐行阅读 INP1

while(<INP1>) {
}

但我需要多次阅读,并且每次都需要从文件的开头开始。我怎样才能做到这一点?有没有像在 perl 中刷新流之类的东西?

提前致谢。

最佳答案

INP1连接到常规文件句柄(不是套接字句柄或管道句柄),您也可以 seek 回到文件的开头。

while(<INP1>) {
   ...
}
seek INP1, 0, 0;

# do it again
while (<INP1>) {
   ...
}

另一种选择是将整个文件一次加载到一个数组中,然后根据需要循环遍历该数组。如果整个文件适合内存并且文件的内容在遍历之间不会改变,那么这是一个好主意。
open INP1, '<', $the_file;
@INP1 = <INP1>;
close INP1;

foreach (@INP1) {
   ...
}

# do it again
foreach (@INP1) {
   ...
}

关于perl - 刷新行阅读运算符 Perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4261896/

相关文章:

xml - 是否有根据模式验证 XML 的 Perl 模块?

perl - Tree::Simple::traverse() 没有访问树的根 - 错误或功能?

C#:将文本文件内容与字符串变量进行比较

sql-server-2008 - SQL Server 2008 文件流访问被拒绝

php - 视频缩略图生成imagemagick?

perl - 将类子例程作为回调传递

javascript - 如何使用 FileSystemObject 在 JavaScript 中读取文件

java - Java中从URL下载文件的方法

c# - 创建 FileTable 或 FileStream SQL 类型 在 C# 中使用 Stream

sql-server - 如何备份文件流数据库?