나는 Perl의 AUTOLOAD
서브 루틴을 사용하는 레거시 코드에 빠져있다. 맵핑되지 않은 모든/정의되지 않은 서브 루틴은 AUTOLOAD
에 의해 처리됩니다. 어휘 환경에서 AUTOLOAD
처리를 비활성화 할 수 있습니까?Perl의 AUTOLOAD 서브 루틴을 어휘 없게 끄려면?
이 솔루션은 작동하지 않습니다
# ENTER CODE HERE
{
# Turn off AUTOLOAD for this block.
local *AUTOLOAD;
undef *AUTOLOAD;
# ENTER CODE HERE
}
# ENTER CODE HERE
하는'추가 할 경우 "nonexistant 방법 $의 AUTOLOAD에 전화"죽을 청소기 수 있습니다 $ AUTOLOAD_DISABLED;'를 귀하의'AUTOLOAD'에 보냅니다. (그런 다음'local $ AUTOLOAD_DISABLED = 1;'.) – ikegami
결함 스크립트 내에 빠진 모든 스크립트가 필요하다는 경고를 추가했습니다. 그래서 지금 그것은 작동합니다 :) – burnersk