我是 Perl 的新手,并试图解码读取 Excel 文件并将数据导出到文本文件的 Perl 脚本。脚本中的步骤之一执行异常。这是步骤:
@array_name = grep {$_} @array_name;
如果值为0
;这一步只是截断最后一列。否则它可以正常工作。如果我删除这一步,最后一列有值0
又回来了,但它NULL
在我的提取中包含一些不属于我的源 Excel 文件的虚拟列。
有人可以帮我理解这一步吗?
grep 命令过滤非空内容。因此,所有不评估为真的东西都将被丢弃。空单元格和包含的单元格0
将被删除。如果您只想删除空单元格,您可以使用
@array_name = grep { defined && length } @array_name ;
反而。
$A->[$i][10]=~s/\n//g;
$variable_value =~s/\n//g;
$variable_value
是存储值的变量。
它将删除下一行。
grep
基本上返回数组中的所有真值,0 被内插为假。
例如grep
这里用来过滤真值到@b,
my @dirty = (0,1,2,3,,0,5,);
my @clean = grep {$_} @dirty;
for(@clean) {print "$_\n";}
退货
1
2
3
5
保留零的一个小技巧是在 grep 参数中添加一个换行符:
my @dirty = (0,1,2,3,,0,5,);
my @clean = grep {"$_\n"} @dirty;
for(@clean) {print "$_\n";}
哪个返回,
0
1
2
3
0
5