Как я могу локализовать переменные Perl в другом фрейме стека?
У меня есть некоторый автоматически сгенерированный код, который эффективно записывает следующее в нескольких местах в некотором коде:
no warnings 'uninitialized';
local %ENV = %ENV;
local $/ = $/;
local @INC = @INC;
local %INC = %INC;
local $_ = $_;
local $| = $|;
local %SIG = %SIG;
use warnings 'uninitialized';
При автоматической генерации кода некоторые утверждают, что не обязательно, чтобы код был «красивым», но я бы хотел вытащить это в подпрограмму. Однако это локализует эти переменные в этой подпрограмме. Есть ли способ локализовать эти переменные в кадре стека вызова?
Обновить: В том же духе было бы неплохо иметь возможность запускать eval в кадре с большим стеком. Я думаю, что у Python уже есть это. Было бы неплохо, если бы Perl тоже.