我正在尝试将perl脚本计算出的数据写入到csv文件中,该文件将被反复打开和输入。我遇到了两个问题。首先,CSV创建了单行的ocupies,将每个新字段添加到新列中。第二个问题是CSV文件一旦创建就没有成功关闭,所以我无法通过再次运行脚本来重新打开和编辑它。我使用的代码是这样的:
push my @rows, ["Entries Missing from English doc:"," " , "Entries Missing from French doc:"];
push @rows, ["$englishUnincluded[0]", " ", "$frenchUnincluded[0]"];
my $csv = Text::CSV->new ({binary=>1}) or die "cannot use CSV: ".Text::CSV->error_diag ();
open my $csvFile, ">:encoding(utf8)", "telt.csv" or die "telt.csv: $!";
$csv->column_names(@{$rows[0]});
$csv->print($csvFile, $_) for @rows;
close $csvFile or die "teet.csv: didnt close at all";
我还尝试使用连续的打印语句,而不是以前的$csv->print(..) for @rows;
语句,如下所示
$field_vals = ["$val", "something", " "]; $csv->print($csvFile, $field_vals);
,并将所有值重新加载到字段中,并将它们作为行打印到CSV,但连续出现相同的两个问题。
**请注意,如果只打印一行,则CSV未关闭问题将消失。此外,脚本不会在未正确关闭文件时打印"or die“消息。
提前感谢您提供的任何帮助!
发布于 2016-08-19 16:22:11
您忘了声明行尾:
my $csv = Text::CSV->new ({binary=>1, eol => $/}) or die "cannot use CSV: ".Text::CSV->error_diag ();
# here __^^^^^^^^^^^^
https://stackoverflow.com/questions/39043372
复制相似问题