2013-08-05 60 views
2

我有一個元素數組,我需要使用Perl文件處理將數組存儲在單獨的單元格中。以CSV格式寫數組值

foreach(@type) 
{ 
print FH qq|"@type","@date","@loc","@title"\n|; 
} 

我使用上面的代碼,但它只存儲數組中的最後一個元素。

在此先感謝。

+0

所有變量都具有相同數量的值 – Balakumar

回答

6

如果使用foreach (@type),則特殊變量$_會一次一個地指定爲@type的值。在你的代碼中,你沒有使用變量$_。相反,您輸出@type,您正在迭代的數組。你可能想遍歷指標,像

for (0 .. $#type) { 
    print FH qq("$type[$_]","$date[$_]","$loc[$_]","$title[$_]"\n); 
} 

,或者與命名循環變量:

for my $index (0 .. $#type) { 
    print FH qq("$type[$index]","$date[$index]","$loc[$index]","$title[$index]"\n); 
} 

請注意,如果您的列可能包含換行符或雙引號,你會過得更好與Text::CSV

2

如果您正在嘗試編寫CSV文件,最好使用CPAN中的特定模塊來幫助您。例如,Text::CSV。在CSV格式的自定義實現中,您可能會忘記很多小細節。