如何从Perl中的CSV文件中提取字段?

时间:2010-02-26 09:35:35

标签: perl csv

我想从csv文件中提取特定字段(830k记录)并存储到哈希中。有没有任何快速简便的方法可以在Perl中使用任何外部方法?

我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:11)

使用Text::CSV_XS。它速度快,适度灵活,经过严格测试。许多这些问题的答案都是关于CPAN的。为什么要花时间做一些不如很多人已经完善和测试过的好东西呢?

如果您不想使用外部模块,这是一个愚蠢的异议,请查看Text :: CSV_XS中的代码并执行此操作。我常常惊讶于人们认为即使他们认为他们不能使用模块,他们也不会使用已知且经过测试的解决方案作为同一任务的示例代码。

答案 1 :(得分:-1)

另请参阅code fragment中的The Perl Cookbook,这本身就是针对常见问题的Perl解决方案的好书

答案 2 :(得分:-1)

假设正常的csv(即没有嵌入的逗号),例如获得第二个字段

 $ perl -F"," -lane 'print $F[1];' file

答案 3 :(得分:-1)

使用split命令可以完成我的工作。 (猜测列用逗号分隔,字段中没有逗号)

    while (my $line = <INPUTFILE>){
    @columns= split ('<field_separator>',$line);  #field separator is ","
    }

然后从&#34;列的元素&#34;数组你可以构造你喜欢的任何哈希。