2009-09-01 67 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