2017-02-24 9 views
5
내가 펄 스크립트의 변수에 액세스/생성 될 때 모든 장소를보고 싶어

은 /는 쉽게 연결할 변수가 생성 될 때 자동으로이 마법을 적용 할 tie 또는펄 스크립트의 모든 변수를 묶는 방법은 무엇입니까?

Variable::Magic 그러나 방법을 사용

을 파괴?

+0

이 모든 것을 연관 배열에 넣고 그 대신에 마술이 어디에 있는지 코드에서 명확하게 나타낼 수 있습니다. – tadman

+0

변수는 BEGIN 단계에서 "_created_"입니다. 그래서 나는이 방법들을 통해 그것을 추적하는 법을 보지 못했다 ...? – zdim

+0

@zdim : 나는 BEGIN {* CORE :: GLOBAL :: my = sub {apply_magic_to_new_variable (shift)}}'을 쓸 수 있다고 생각했다. 이 후크가 –

답변

1

응용 프로그램의 모든 변수에 대한 상호 참조 목록을 생성하는 B :: Xref를 살펴볼 수 있습니다. 기본적으로 모든 변수 선언/초기화를 찾으려면 바이트 코드를 처리해야합니다. 바이트 코드를 변경하여 코드를 추가하여 변수를 연결할 수도 있습니다. 그러나 거의 수행되지 않기 때문에 예를 들어 설명 할 수는 없습니다.

대신 코드 필터를 사용하여 tie() 지침을 추가 할 수 있습니다. 그러나 코드 필터는 변수 선언/초기화를 올바르게 식별 할 수는 없습니다.