Начиная с Perl 5.10, теперь можно лексически охватить контекстную переменную $_, либо явно, как my $_;, либо в конструкции given / when.
Кто-нибудь нашел хорошее использование лексического $_? Делает ли это какие-либо конструкции проще/безопаснее/быстрее?
Как насчет ситуаций, которые он усложняет? Лексический $_ вводит какие-либо ошибки в ваш код? (поскольку структуры управления, которые пишут $_, будут использовать лексическую версию, если она есть в области видимости, это может изменить поведение кода, если оно содержит вызовы подпрограмм (из-за потери динамической области))
В конце концов, я хотел бы создать список, который разъясняет, когда использовать $_ как лексический, как глобальный, или когда это вообще не имеет значения.
NB: с perl5-5.24 эти экспериментальные функции больше не являются частью perl.