2009-09-01 49 views
0

我正在创建一个脚本来读取csv文件中的值,并将这些值用于其他任务。我写了下面的代码来读取值。读取CSV并创建不同的阵列

sample file: 

site,type,2009-01-01,2009-01-02,.... 
X,A,12,10,... 
X,B,10,23,... 
Y,A,20,33,... 
Y,B,3,12,... 

and so on.... 

代码:

my @value; 
while (<INFILE>) { 
    next if $_ !~ /B/; 
     my ($v1, $v2, @v3) = split /[,]/, $_; 
     push(@value, @v3); 
} 

它给了我,我需要帮助创建为每种类型的B值不同的数组类型B的所有值。

回答

1

请看看这个link。希望这可以帮助你。

+1

'perldoc perllol'很好,不过我觉得'perldoc perldsc'更有帮助(虽然比较复杂)。请注意,您可以在http://perldoc.perl.org/在线获得所有Perl文档的最新版本。 。你也应该能够随时在终端上获取文档(假设一个合理的标准Perl安装 - 尽管一些操作系统删除了文档)。 – Telemachus 2009-09-01 12:09:52

2

据我理解,你想用一个列表的列表:

my @value; 
while (<INFILE>) { 
    next if $_ !~ /B/; 
    chomp; 
    my ($v1, $v2, @v3) = split /[,]/, $_; 
    push @value, [@v3]; # This creates a list of lists 
} 

use Data::Dumper::Simple; 

print Dumper @value; 
3

读取CSV文件比我们大多数人想象的要难。甚至事实证明读取CSV文件非常困难。因此我的建议是而不是自己做这个,而是用Text::CSV_XS来代替。

+1

它看起来非常简单,但事实并非如此。 – Telemachus 2009-09-01 13:49:08