以CSV格式写入数组值

Bal*_*mar 2 csv arrays perl file-handling

我有一个元素数组,我需要使用Perl文件处理存储在单独的单元格中.

foreach(@type)
{
print FH qq|"@type","@date","@loc","@title"\n|;
}
Run Code Online (Sandbox Code Playgroud)

我使用上面的代码,但它只存储数组中的最后一个元素.

提前致谢.

cho*_*oba 6

如果使用foreach (@type),$_则会为特殊变量分配@type一个接一个的值.在您的代码中,您没有使用该变量$_.相反,您输出@type,您正在迭代的数组.您可能想要遍历索引,例如

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

或者,使用命名循环变量:

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

请注意,如果您的列可能包含换行符或双引号,那么使用Text :: CSV会更好.