內容

名稱

parent - 編譯時與基礎類別建立 ISA 關係

語法

package Baz;
use parent qw(Foo Bar);

說明

允許您載入一個或多個模組,同時設定從這些模組繼承的內容。效果大多類似於

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

預設情況下,每個基礎類別都必須存在於自己的檔案中。如果您想要在同一個檔案中擁有子類別及其父類別,您可以使用 -norequire 參數告訴 parent 不要載入任何模組

package Foo;
sub exclaim { "I CAN HAS PERL" }

package DoesNotLoadFooBar;
use parent -norequire, 'Foo', 'Bar';
# will not go looking for Foo.pm or Bar.pm

這等同於以下程式碼

package Foo;
sub exclaim { "I CAN HAS PERL" }

package DoesNotLoadFooBar;
push @DoesNotLoadFooBar::ISA, 'Foo', 'Bar';

這對於套件存在於不同名稱的檔案中的情況也很有幫助

package MyHash;
use Tie::Hash;
use parent -norequire, 'Tie::StdHash';

這等同於以下程式碼

package MyHash;
require Tie::Hash;
push @ISA, 'Tie::StdHash';

如果您想要從 require 不會視為符合資格的檔案名稱(也就是說,檔案名稱不是以 .pm.pmc 結尾)載入子類別,請使用以下程式碼

package MySecondPlugin;
require './plugins/custom.plugin'; # contains Plugin::Custom
use parent -norequire, 'Plugin::Custom';

歷史

此模組從 base 分岔出來,以移除其中累積的雜訊。

注意事項

另請參閱

base
parent::versioned

parent 的分支,在父類模組中提供版本檢查。

作者和貢獻者

Rafaël Garcia-Suarez、Bart Lateur、Max Maischein、Anno Siegel、Michael Schwern

維護者

Max Maischein corion@cpan.org

版權所有 (c) 2007-2017 Max Maischein <corion@cpan.org> 基於 base.pm 的構想,它在 Perl 5.004_04 中引入。

授權

此模組在與 Perl 相同的條款下發布。