2

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

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

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

提前致谢。

4

2 回答 2

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

于 2013-08-05T12:40:12.527 回答
2

如果您尝试编写 CSV 文件,最好使用 CPAN 中的特定模块,这将对您有很大帮助。例如,文本::CSV。在 CSV 格式的自定义实现中,您可能会忘记很多小细节。

于 2013-08-05T12:56:53.433 回答