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からコアモジュールです。
Perlゼミ

