在 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/