2013-01-10 69 views
2

我想让Perl split工作2个多小时。我没有看到错误。也许其他一些眼睛可以看看它并看到问题。我相信它是一个愚蠢的:为什么split没有返回任何东西?

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

print $versionsplit[0]; 
print $versionsplit[1]; 
print $versionsplit[2]; 

我只是得到一个空数组。任何想法为什么?

回答

14

您需要:

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

的第一个参数是split正则表达式,而不是一个字符串。并.是正则表达符号,意思是“匹配任何字符”。因此,输入字符串中的所有字符都被视为分隔符,并且split在它们之间没有找到任何要返回的内容。

1

.”表示任何字符。您需要将其转义为分割函数才能识别为字段分隔符。 您的生产线变更为

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

我发现,把第一个参数'split'在比赛运营商(''//)强化了这一事实,它的解释为正则表达式。 –

相关问题