Как я могу локализовать переменные 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 тоже.

Ответы на вопрос(6)

Ваш ответ на вопрос