parentモジュール - クラスの継承
parentモジュールを使用すると、クラスを継承することができます。
# クラスの継承 package MyClass; use parent 'BaseClass';
上記のサンプルではMyClass
がBaseClass
を継承しています。
BaseClass
は、コンパイル時に、requireを使って読み込まれ、特殊変数@ISAの最後に追加されます。
同一ファイルで定義されたクラスの継承
同一ファイルで定義されたクラスを継承するには-norequire
オプションを使用します。
package Foo; sub exclaim { "I CAN HAS PERL" } package DoesNotLoadFooBar; use parent -norequire, 'Foo', 'Bar';
baseモジュール
baseモジュールは、parent
モジュールと同じようにクラスの継承を行いますが、requireを使って親クラスを読み込むかどうかは、経験則を利用します。
package MyClass; # baseモジュール use base 'ParentClass';
もし親クラス「ParentClass」が定義されており、このクラスがサブルーチンを持つ場合は、requireは実行されません。
package ParentClass; sub exclaim { "I CAN HAS PERL" } package DoesNotLoadFooBar; use base 'ParentClass';
それ以外の場合は、親クラスParentClass
は、コンパイル時に、requireを使って読み込まれます。
parent
モジュールは。v5.10
からコアモジュールです。
base
モジュールは。v5.0
からコアモジュールです。