2013-01-10 98 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'在比賽運營商(''//)強化了這一事實,它的解釋爲正則表達式。 –

相關問題