首页 文章

perl分裂行为的差异?

提问于
浏览
2

我在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脚本更具可移植性?

1 回答

  • 2

    根据split的文档,Windows 7版本是正确的:

    默认情况下,将保留空的前导字段,并删除空的尾随字段 . (如果所有字段都为空,则认为它们是尾随的 . )

    所以如果你拆分,例如 ",,,test,,,," 然后你的例子应该打印 3 . (在Ubuntu 10.04上经过5.10.1测试 . )

相关问题