LINUX.ORG.RU

[perl] как найти все варианты шаблона встроке с перекрытием

 


0

0
например есть строка "прппооыыы" и шаблон m/.о./gi выдает один результат "поо", а про "ооы" забывает. есть ли простое решение для такого поиска когда нужно найти действительно все варианты шаблона встречающиеся в строке. Заранее спасибо.

Ответ на: комментарий от dilmah
уже только с использованием $&, но хотелось бы чего-нибудь по элегантней возможно с for
Fredy
() автор топика
Ответ на: комментарий от dilmah
Видел это решение в Perl: Сборник рецептов. Там, кстати, говорили что нельзя из этого цикла вываливаться по last; это из-за $1 ?
nikolayd
()
Ответ на: комментарий от nikolayd
не знаю. Я взял это off the top of my head. Не знаю какие проблемы с last.
dilmah ★★★★★
()
Ответ на: комментарий от Fredy
В книге не совсем такой пример, но думается мне, там подразумевается,
случай грепа
"last" cannot be used to exit a block which returns a value such as
"eval {}","sub {}" or "do {}", and should not be used to exit a grep()
or map() operation.
Svoloch ★★★
()
Ответ на: комментарий от Svoloch
Тут греп ни при чём.
Данное правило говорит о том, что last применим к циклам.
while(){} - это цикл, в нём last применим.
eval {}, sub {}, do {}, grep(), map() - это не циклы, тут last не применим.
tzukko
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.