名前¶
parent - Establish an ISA relationship with base classes at compile time
parent - コンパイル時に基底クラスとの ISA 関係を構築する
概要¶
package Baz;
use parent qw(Foo Bar);
説明¶
Allows you to both load one or more modules, while setting up inheritance from those modules at the same time. Mostly similar in effect to
複数のモジュールを読み込んで、それらのモジュールからの継承を同時に 設定します。 事実上ほとんど以下と同じです
package Baz;
BEGIN {
require Foo;
require Bar;
push @ISA, qw(Foo Bar);
}
By default, every base class needs to live in a file of its own. If you want to have a subclass and its parent class in the same file, you can tell parent
not to load any modules by using the -norequire
switch:
デフォルトでは、それぞれの基底クラスはそれぞれ独自のファイルにある 必要があります。 サブクラスと親クラスを同じファイルに置きたい場合は、-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
This is equivalent to the following code:
これは以下のコードと等価です:
package Foo;
sub exclaim { "I CAN HAS PERL" }
package DoesNotLoadFooBar;
push @DoesNotLoadFooBar::ISA, 'Foo';
This is also helpful for the case where a package lives within a differently named file:
これはまた、パッケージが異なった名前のファイルにある時にも有用です:
package MyHash;
use Tie::Hash;
use parent -norequire, 'Tie::StdHash';
This is equivalent to the following code:
これは以下のコードと等価です:
package MyHash;
require Tie::Hash;
push @ISA, 'Tie::StdHash';
If you want to load a subclass from a file that require
would not consider an eligible filename (that is, it does not end in either .pm
or .pmc
), use the following code:
require
が適格なファイル名と扱わない (つまり、.pm
や .pmc
で 終わっていない) ファイルからサブクラスをロードしたいときは、以下のコードを 使います:
package MySecondPlugin;
require './plugins/custom.plugin'; # contains Plugin::Custom
use parent -norequire, 'Plugin::Custom';
DIAGNOSTICS¶
- Class 'Foo' tried to inherit from itself
-
Attempting to inherit from yourself generates a warning.
自分自身を継承しようとすると警告が生成されます。
use Foo; use parent 'Foo';
HISTORY¶
This module was forked from base to remove the cruft that had accumulated in it.
このモジュールは、積み重なった良くないものを取り除くために base からフォークしました。
CAVEATS¶
SEE ALSO¶
AUTHORS AND CONTRIBUTORS¶
Rafaël Garcia-Suarez, Bart Lateur, Max Maischein, Anno Siegel, Michael Schwern
MAINTAINER¶
Max Maischein [email protected]
Copyright (c) 2007 Max Maischein <[email protected]>
Based on the idea of base.pm
, which was introduced with Perl 5.004_04.
ライセンス¶
This module is released under the same terms as Perl itself.