Как я могу ограничить функцию разделения Perl? - PullRequest
1 голос
/ 19 мая 2010

Я пытаюсь это:

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

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

print "@str2";

Я смотрю в $str[0] = Group и $str[1]= ALL:ALL:Good.

Это не работает. В чем будет проблема?

Ответы [ 3 ]

11 голосов
/ 19 мая 2010

Разве вы не имеете в виду это?

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

В противном случае вы будете разбивать строку :, что кажется бессмысленным.

3 голосов
/ 19 мая 2010
my $string = "Group: ALL:ALL:Good";
my @str    = split(/:/, $string, 2);

print $str[0];
print $str[1];
2 голосов
/ 20 мая 2010

Для использования лимита с разделением

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

С Функция разделения PerlDoc :

Если LIMIT указан и положительный, он представляет собой максимальное количество поля EXPR будут разбиты на, хотя фактическое количество полей возвращается зависит от количества раз PATTERN совпадает в течение EXPR. Если LIMIT не указан или равен нулю, трейлинг нулевые поля удаляются (что потенциальные пользователи поп-музыки преуспеют помнить). Если LIMIT отрицательный, это рассматривается как будто произвольно большой LIMIT был указан. Обратите внимание, что разделение EXPR, который оценивает пустая строка всегда возвращает пустой список, независимо от предела указано.

...