Perl Excelparsing器截断列
我是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
是存储值的variables。
它将删除下一行。
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