Использование круглых скобок только штрафует регулярные выражения, которые их используют, поэтому используйте их там, где вам нужно захватить, но используйте не захватывающие скобки (?:...)
, когда все, что вам нужно, это группировка.
Использование любого из глобальныхпеременные соответствия
$` $& $'
налагают снижение производительности на все регулярные выражения, поэтому избегайте их использования, если это возможно.(Но как только вы это сделаете, сходите с ума! Вы уже заплатили цену.) Нет способа включить и выключить это.Как только Perl обнаруживает, что они используются где угодно (даже в сторонних модулях, которые вы можете использовать), эта функция включается.
Начиная с Perl 5.10.0, существуют альтернативы для глобальных переменных соответствия, которые только штрафуютрегулярные выражения, которые их используют.Если вы добавите модификатор /p
к определенному регулярному выражению, вы сможете использовать вместо него
${^PREMATCH} ${^MATCH} ${^POSTMATCH}
.