Регулярные выражения — 5. Анонимные правила

Как и обычные функции (sub), правила (rules) регулярных выражений допустимо определять не в виде отдельного именованного блока, а непосредственно по ходу работы программы. Само правило записывают внутри фигурных скобок, перед которыми стоит ключевое слово rule. Присвоив ссылку на такой блок переменной, мы получаем возможность использовать правило в регулярных выражений так же, как если бы оно было определено вне функции:

Безымянные правила могут принимать аргументы, однако в этом случае объявлять заранее их не нужно. Доступ к фактически переданным параметрам осуществляется через массив @_, доступный внутри правила. В следующем примере создано правило, которое находит в тексте подстроку, начинающуюся с символа, переданного при вызове правила:

Первый раз совпадает подстрока «123», второй — «23».