2017-02-24 27 views
5
Ben perl değişken erişilen/oluşturulduğunda her yeri görmek istiyorum

/O kolayca ulaşılabilir değişken oluşturulduğunda otomatik olarak bu sihirli uygulamak tie veyaPerl komut dosyasında her değişken nasıl bağlanır?

Variable::Magic Ama nasıl kullanıyor

tahrip?

+0

Bunların tümünü ilişkisel bir diziye koymak isteyebilirsiniz ve bunun yerine, sihirbazın bulunduğu yerde kodunuzda net bir şekilde görünmesini sağlayabilirsiniz. – tadman

+0

Değişkenler, BEGIN aşamasında "_created_" şeklindedir. Bu yüzden bu yöntemleri kullanarak nasıl izleyeceğimi göremiyorum ...? – zdim

+0

@zdim: Ben kullanabileceğimi düşündüm: BEGIN {* CORE :: GLOBAL :: my = sub {apply_magic_to_new_variable (shift)}} 'Ancak' benim 'belki sadece bareword olarak adlandırılır. Bu kanca –

cevap

1

Uygulamanızdaki tüm değişkenlerin çapraz referans listesini oluşturan B :: Xref'e bir göz atabilirsiniz. Temel olarak, tüm değişken bildirimleri/başlatmaları bulmak için bayt kodunu kullanmanız gerekir. Ayrıca bayt kodunu değiştirebilir, yani değişkenleri bağlamak için kod ekleyebilirsiniz. Ancak, size bir örnek gösteremiyorum, çünkü bu nadiren yapılır.

Alternatif olarak, tie() yönergelerini eklemek için bir kod filtresi kullanabilirsiniz. Ancak, değişken bildirimleri/başlatmaları doğru bir şekilde tanımlamak için kod filtrelerinin garantisi yoktur.

İlgili konular