目錄

名稱

base - 編譯時建立與基底類別的 ISA 關係

語法

package Baz;
use base qw(Foo Bar);

說明

除非您正在使用 fields pragma,否則建議您使用較輕量的 parent,並避免使用此模組。

允許您同時載入一個或多個模組,並同時設定從這些模組繼承的關係。與以下指令的效果大致相同

package Baz;
BEGIN {
    require Foo;
    require Bar;
    push @ISA, qw(Foo Bar);
}

base 嘗試 require 一個模組時,如果找不到模組檔案,它不會 die,但會在任何其他錯誤時 die。在所有這些之後,如果您的基底類別是空的,不包含任何符號,base 將會 die。這對於繼承與您在同一個檔案中的類別很有用,但檔案名稱與基底模組名稱不匹配,如下所示

# in Bar.pm
package Foo;
sub exclaim { "I can have such a thing?!" }

package Bar;
use base "Foo";

沒有 Foo.pm,但由於 Foo 定義了一個符號(exclaim 子常式),因此當 require 無法載入 Foo.pm 時,base 也不會 die。

如果其中一個基底類別有欄位,base 也會初始化該欄位。支援欄位的多重繼承,如果兩個或多個基底類別各自有可繼承的欄位,則 'base' pragma 將會 croak。請參閱 fields 以取得此功能的說明。

基礎類別的 import 方法沒有被呼叫。

診斷

基礎類別套件 "%s" 是空的。

base.pm 無法需要基礎套件,因為在路徑中找不到它。

類別 'Foo' 嘗試繼承它自己

嘗試繼承它自己會產生一個警告。

package Foo;
use base 'Foo';

歷史

這個模組在 Perl 5.004_04 中被引入。

注意事項

由於實作的限制,你必須在宣告任何你自己的欄位之前使用基礎。

另請參閱

欄位