Perl 为什么split不返回任何内容?

Perl 为什么split不返回任何内容?,perl,split,Perl,Split,我试图让Perlsplit工作2个多小时。我看不出有错误。也许其他人也能看到这个问题。我相信这是一个愚蠢的问题: @versionsplit=split('.',"15.0.3"); print $versionsplit[0]; print $versionsplit[1]; print $versionsplit[2]; 我只得到一个空数组。知道原因吗?您需要: @versionsplit=split(/\./,"15.0.3"); split的第一个参数是正则表达式,而不是字符串。是

我试图让Perl
split
工作2个多小时。我看不出有错误。也许其他人也能看到这个问题。我相信这是一个愚蠢的问题:

@versionsplit=split('.',"15.0.3");

print $versionsplit[0];
print $versionsplit[1];
print $versionsplit[2];
我只得到一个空数组。知道原因吗?

您需要:

@versionsplit=split(/\./,"15.0.3");
split
的第一个参数是正则表达式,而不是字符串。
是regex符号,表示“匹配任何字符”。因此,输入字符串中的所有字符都被视为分隔符,
split
在它们之间找不到任何要返回的字符。

”表示任何字符。您需要将其转义,split函数才能识别为字段分隔符。 把你的线路改成

@versionsplit=split('\.',"15.0.3");

我发现在匹配操作符(
/
)中将第一个参数放入
split
)会强化这样一个事实,即它被解释为正则表达式。