いくつかのコードのさまざまな場所に次のことを効果的に書き出す自動生成コードがあります。
no warnings 'uninitialized';
local %ENV = %ENV;
local $/ = $/;
local @INC = @INC;
local %INC = %INC;
local $_ = $_;
local $| = $|;
local %SIG = %SIG;
use warnings 'uninitialized';
コードを自動生成するとき、コードが「美しい」ものである必要はないと主張する人もいますが、私はそれをサブルーチンに引き出したいと考えています。ただし、それはそのサブルーチンでそれらの変数をローカライズします。呼び出し元のスタック フレームでこれらの変数をローカライズする方法はありますか?
更新: 同様に、より高いスタック フレームで eval を実行できると便利です。Pythonにはすでにこれがあると思います。Perlもそうなればいいのに。