我必须将带有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
答案 0 :(得分:0)
在迭代多维数组时使用foreach
样式的for
。如果你不必这样做,没有理由跟踪索引。
此外,您可以使用已定义的操作符//
和map
快速将所有undef
值转换为首选默认值。
for my $row (@outputArray) {
print MYFILE join(',', map {$_ // 0} @$row), "\n";
}