2010-03-24 3 views
2

생성자가 동일한 패키지에있는 서브 루틴을 호출한다는 점에서 1.pm이라는 패키지가 있습니다.생성자가 호출 된 패키지를 어떻게 확인할 수 있습니까?

2.pm1.pm에 정의 된 생성자를 호출한다고 다른 클래스가 말하면, 서브 루틴이 2.pm에서 호출되는지 어떻게 결정할 수 있습니까?

+3

관심사, 왜 1.pm는 건축 시간에 그것의 부르는 포장을 알 필요가 있습니까? 생성자의 행동이 그것을 호출하는 패키지에 의존한다는 것이 이상하게 보입니다. – rjh

+0

아마도 디버깅이나 프로파일 링의 이유로? –

답변

5

사용 caller 내장 : 더 많은 정보를 원하는 경우

$package = caller; 

당신이 사용할 수 있습니다

($package, $filename, $line) = caller; 

perldoc -f caller를 참조하십시오.

+1

또는 단지'my $ package = caller;'. – jrockway

+0

로그 정보로 사용 중입니다. 기본적으로 Log : Log4perl을 사용하여 모든 정보를 추적하고 있습니다. –

+1

@Nach : Log : Log4perl은 올바르게 구성한 경우 자동으로 해당 정보를 추적합니다. 특별한 조치를 취할 필요가 없습니다. CPAN의 최신 FAQ를 참조하십시오. – Ether

관련 문제