【发布时间】:2011-01-11 13:21:59
【问题描述】:
要求
- 我有一个非常大的 CSV 文件要读取。 (约 3 GB)
- 我不需要所有记录,我的意思是,我们可以使用一些条件,例如,如果 CSV 的第 3 列内容为“XXXX”,第 4 列为“999”。
问题: 我可以使用这些条件来改进读取过程吗?如果是这样,我该如何使用 Perl 来做到这一点?
我需要一个示例(Perl 脚本)作为您的答案。
【问题讨论】:
-
请注意,所有答案都使用
while循环而不是for循环。这个非常重要。while在标量上下文中运行,一次只能获取一行。for在列表上下文中运行,将导致在任何处理开始之前将整个文件读入内存。 -
-1 表示“我不会告诉你我已经尝试过什么,也不会给出任何迹象表明我自己已经努力做到这一点,但所有答案都应该包括工作代码"