our @ISA = "Critter";
どの条件で使用し@ISAますか?
そしてなぜour @ISA?
マットのコメントを拡張するために、このようなものはに広範囲に文書化されていperldocsます。
に関して@ISA、これはそれが言うことです:
クラスは単なるパッケージです
..。
各パッケージには、と呼ばれる特別な配列が含まれています
@ISA。配列には、その@ISAクラスの親クラス(存在する場合)のリストが含まれています。この配列は、Perlがメソッド解決を行うときに調べられます。これについては後で説明します。手動で設定することは可能で
@ISAあり、これは古いPerlコードで見られる場合があります。はるかに古いコードもbaseプラグマを使用します。新しいコードの場合、parentプラグマを使用して親を宣言することをお勧めします。このプラグマが設定を処理します@ISA。また、親クラスをロードし、パッケージがそれ自体から継承しないことを確認します。親クラスが設定されていても、パッケージの
@ISA変数にはそれらの親のリストが含まれます。これは単にスカラーのリストであり、各スカラーはパッケージ名に対応する文字列です。
ourパッケージ変数であることが期待されるため、@ISA手を取り合ってください。@ISA
@ISAは'isa'の略で、配列に親のパッケージが含まれていることを意味します