나는 효과적으로 몇 가지 코드에 다른 장소의 무리에 다음에서 기록 일부 자동 생성 된 코드가 있습니다다른 스택 프레임에서 펄 변수를 어떻게 현지화 할 수 있습니까?
no warnings 'uninitialized';
local %ENV = %ENV;
local $/ = $/;
local @INC = @INC;
local %INC = %INC;
local $_ = $_;
local $| = $|;
local %SIG = %SIG;
use warnings 'uninitialized';
때 자동 생성 코드, 일부는 코드가 "하는 것이 반드시 필요한 것은 아니라고 주장 아름답다. "그러나 나는 이것을 서브 루틴으로 끌어 들이고 싶다. 그러나 그 서브 루틴에서 변수를 지역화합니다. 호출 스택 프레임에서 이러한 변수를 지역화하는 방법이 있습니까?
업데이트 : 비슷한 맥락에서 더 높은 스택 프레임에서 eval을 실행할 수 있으면 좋을 것입니다. 나는 파이썬이 이미 이것을 가지고 있다고 생각한다. Perl도 그렇게한다면 좋을 것입니다.
파이썬에서 본 것이 확실합니까? Tcl의'uplevel'이 떠오른다. 그러나 헥센의 대답은 어쨌든 훨씬 낫다. – cfi