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