【发布时间】:2014-04-28 11:22:21
【问题描述】:
您好,我有一个大文件想要阅读。为了节省资源,我想慢慢阅读,一次一行。但是我想知道是否有办法从文件句柄中读取特定行。例如,假设我有一个 test.txt 文件,其中包含以 1 开头的十亿个数字。每个数字都在单独的行上。
1
2
3
...
所以现在我要说的是第 10 行,
open (FILE, "< test.txt") or die "$!";
@reads = <FILE>
print $reads[9];
但是,有没有一种方法可以访问 FILE 的某些部分,而无需将所有内容都读入一个大数组中,比如我想要第 10 行。
something like FILE->[9]
- 感谢您提前提供帮助!
【问题讨论】:
-
嗨,用 perl 模块找到了答案;描述说它不会读入内存。
use Tie::File; tie @array, 'Tie::File', 'test.txt' or die; print "$array[9]"; -
Tie::File 上的文档吓到我了:search.cpan.org/~toddr/Tie-File-1.00/lib/Tie/File.pm
标签: perl