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