Регулярные выражения Perl и их применение

ba2f5a3f

Третий операнд (ограничение)


Роль этого необязательного операнда в том, чтобы ограничить число фрагментов, на которые будет разбит заданный текст. Если этот операнд отсутствует, то ограничения нет. Например, оператор

print join '-', split ' ', ' a b c de ', 3;

напечатает

a-b-c de

После возврата двух элементов вернется остаток заданного текста. Если в результате текст разобьется на число частей, которое меньше заданного, то дополнительные элементы не создаются. Например:

print join '-', split ' ', ' a b c de ', 10;

Напечатается: a-b-c-de-. Мы видим, что в этой форме оператор split в отличие от случая, когда третий операнд отсутствует, начинает возвращать конечные пустые элементы.

Также можно ограничить количество возвращаемых значений, если в качестве приемника задать список:

($a,$b,$c) = split /$re/, $text;

После заполнения заданного количества полей Perl прекратит работу оператора split.

Если количество кусков текста меньше заявленного количества элементов списка, то оставшиеся элементы списка получат пустые значения.



Содержание раздела