2010-05-19 69 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 。