oo Perl 繼承

wxPerl是一個純oo的gui庫。今天在看它的例子的時候,也試了一下不同的繼承方法。
在wxPerl的hello.pl中是這樣用的:
use vars qw(@ISA);
@ISA = qw(Wx::App);
在programming Perl裏查了一下use vars這個pragma. 發現,這種用法已經在某種程度
上廢棄了,因爲有了our. 上面的代碼等同於:
our (@ISA) = qw(Wx::App);
他們的作用都是定義一個包全局變量。 要注意的是不要混合使用,即,不要在一段
代碼中對@ISA同時使用use vars 和 our。(在一個文件裏定義一個以上的包時)
除了這兩種方法,還可以用:
use base qw(Wx::App);
這段代碼等價於:
BEGIN{
    require Wx::App;  # 注意,這裏用的是裸字。具體看require的介紹
    push @ISA, qw(Wx::App);

還發現了一個小問題,在用use base qw(Wx::App);
的時候,父類必須以1;結尾,而另外兩種方法,不用也有可能ok.
這可能是require的原因。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章