我在Windows XP和Windows 7上安装了活动的perl相同版本。
我发现在Windows XP上和ubuntu split会返回空数组元素,但是在Windows 7上它不会。例如:
my @array;
my $item = "test,,,,";
@array = split(/,/,$item);
print $#array;
将打印4并且数组将有3个空元素,但在Windows 7上它始终打印0并且只有1个元素。有谁知道为什么会发生这种情况以及我应该使用什么来使perl脚本更具可移植性?
答案 0 :(得分:2)
根据split
的文档,Windows 7版本是正确的:
默认情况下,空的前导字段为 保留的,空的尾随的 删除。 (如果所有字段都是空的, 他们被认为是落后的。)
所以,如果你分开,例如",,,test,,,,"
然后您的示例应打印3
。 (在Ubuntu 10.04上经过5.10.1测试。)