2010-05-19 49 views
1

我已經嘗試此:如何限制Perl的拆分功能?

$string ="Group: ALL:ALL:Good"; 

@str2 = split (/:/,':',2); 

print "@str2"; 

我期待在$str[0] = Group$str[1]= ALL:ALL:Good

它不工作。什麼是問題?

回答

3
my $string = "Group: ALL:ALL:Good"; 
my @str = split(/:/, $string, 2); 

print $str[0]; 
print $str[1]; 
+0

Downvote,因爲這個代碼是sl and的,並且在'strict'和'warnings'編譯指示下運行時會導致錯誤。小心解決它? – daxim 2010-05-20 08:54:20

+0

@daxim:當然。固定。 – Tomalak 2010-05-20 09:09:07

10

你不是這個意思嗎?

@str2 = split (/:/,$string,2); 

否則,你會被分割字符串:,這似乎是一種毫無意義的。

2

要使用限制具有分裂

@array = split /PATTERN/,EXPR,LIMIT; 

PerlDoc split function

如果指定限值和正的,它 表示EXPR將被分成 字段的最大數目, 雖然返回的實際字段數 取決於 tim的數量es PATTERN在EXPR中匹配。如果 LIMIT未指定或爲零,則刪除尾部 空字段(其中 pop的潛在用戶可以很好地記住 )。如果LIMIT爲負數,則將其視爲如同指定了任意大的極限值 。請注意, 將計算得到的EXPR拆分爲 空字符串總是返回空列表,不管指定的是LIMIT 。