1. Perl
  2. モジュール
  3. here

parentモジュール - クラスの継承

parentモジュールを使用すると、クラスを継承することができます。

# クラスの継承
package MyClass;

use parent 'BaseClass';

上記のサンプルではMyClassBaseClassを継承しています。

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

Perlテキスト処理のエッセンス 書籍版

関連情報