В регулярных выражениях, доступных в Perl 5.10, появился метасимвол \K, который устанавливает точку «невозврата», до которой строка не должна измениться даже после замен.
Мой коллега порадовал еще раз, применив эту фичу в работе.
my $uri = $ENV{REQUEST_URI};
$uri =~ s{^.+?\K\?.*$}{};
Здесь в переменной $uri оказывается адрес без строки запроса, если она была.
Без использования метасимвола \K подобные замены приходилось делать явно, применяя захват и соответствующие переменные для подстановки:
$uri =~ s{^(.+?)\?.*$}{$1};
В документации замечено, что использование \K намного эффективнее (much more efficient), чем явная замена.
До Perl 5.10 аналогичная функциональность была возможна при подключенном модуле Regexp::Keep.
Интересно, а чем не устраивает конструкция $uri =~ s{\?.*$}{} ?
Устраивает даже $uri =~ s{\?.*}{};
Тогда просто не понятно - а зачем было использовать сию фичу (\K) в работе?..