我必须读取CSV文件abc.csv
,从中选择几个字段并形成一个新的CSV文件def.csv
。忽略使用Perl的CSV文件中的空行
以下是我的代码。我试图忽略来自abc.csv
的空行。
genNewCsv();
sub genNewCsv {
my $csv = Text::CSV->new();
my $aCsv = "abc.csv"
my $mCsv = "def.csv";
my $fh = FileHandle->new($aCsv, "r");
my $nf = FileHandle->new($mCsv, "w");
$csv->print($nf, [ "id", "flops""ub" ]);
while (my $row = $csv->getline($fh)) {
my $id = $row->[0];
my $flops = $row->[2];
next if ($id =~ /^\s+$/); #Ignore empty lines
my $ub = "TRUE";
$csv->print($nf, [ $id, $flops, $ub ]);
}
$nf->close();
$fh->close();
}
,但我得到了以下错误:
Use of uninitialized value $flops in pattern match (m//)
我怎么忽略空行的CSV文件?
我已经使用堆栈溢出问题Remove empty lines and space with Perl,但它没有帮助。
fyi,你似乎在“flops”和“ub”之间缺少一个逗号 – Gabs00
将'next if ...'移动一行,因为如果行是Cañons访问元素。 – smartmeta
添加到@ Gabs00中,您有更多'syntax'错误:'my $ aCsv =“abc.csv”'缺少';'。复制粘贴错误? – chrsblck