具有undef到CSV的Perl 2D阵列

时间:2014-05-02 21:38:35

标签: arrays perl csv

我必须将带有undef enteries的2D数组更改为csv文件。转储器值看起来像

VAR1      [
            'Entry1',
            undef,
            undef,
            undef,
            17
          ],
          [
            'Entry2',
            8,
            undef,
            undef,
            17
          ],
          [
            'Entry3',
            undef,
            4,
            undef,
            17
          ],

对于undef,我需要输入0.我正在使用下面的代码,但它没有给出必要的结果。

    open MYFILE, ">>new.csv";
    for ($i=1,$i <= $flag, $i++){
        print MYFILE "$outputArray[$i][0],";
        for ($j=0,$j<= 4, $j++){
        print MYFILE int($outputArray[$i][$j]).",";
        }
        print MYFILE "\n";
    }
    close MYFILE;   

我的最终csv会像

Entry1,0,0,0,17
Entry2,8,0,0,17
Entry3,0,4,0,17 

1 个答案:

答案 0 :(得分:0)

在迭代多维数组时使用foreach样式的for。如果你不必这样做,没有理由跟踪索引。

此外,您可以使用已定义的操作符//map快速将所有undef值转换为首选默认值。

for my $row (@outputArray) {
    print MYFILE join(',', map {$_ // 0} @$row), "\n";
}