X::Caller::NotDynamic
X::Caller::NotDynamic
호출한 쪽(caller)의 변수에 접근할 때 쓰는 게 CALLER 문법이에요. 그런데 CALLER는 동적 변수(dynamic variable)에만 접근할 수 있어요. 동적이 아닌 변수에 접근하려고 하면 X::Caller::NotDynamic 예외가 던져집니다.
본문
CALLER를 통해 동적(dynamic)으로 선언되지 않은 변수에 접근하려고 하면 이 예외가 발생해요. 전형적인 오류 메시지는 다음과 같아요.
Cannot access '$x' through CALLER, because it is not declared as dynamic
동적 변수는 이름 앞에 $*처럼 별표(twigil)를 붙여 선언해요. CALLER로 건너가서 변수를 읽고 싶다면 그 변수가 동적으로 선언되어 있는지 먼저 확인하는 게 좋아요.
메서드
method symbol
CALLER에 넘겨졌던 심볼(변수)의 이름을 돌려줘요. 위 예시에서는 $x가 되겠죠.