目次 TABLE OF CONTENTS
base - 基底クラスとの IS-A 関係をコンパイル時に確立する base - Establish IS-A relationship with base class at compile time
package Baz;
use base qw(Foo Bar);
おおざっぱに言うと, 次の文と同じ効果を持ちます. Roughly similar in effect to
BEGIN {
require Foo;
require Bar;
push @ISA, qw(Foo Bar);
}
基底クラスにそのクラスのすべての public 及び private データメンバを 使う %FIELDS ハッシュを持っている者があるのなら, このクラスでも %FIELDS を初期化します. Will also initialize the %FIELDS hash if one of the base classes has it using all public and protected data members of the base classes. Multiple Inheritence of fields is NOT supported. If two or more base classes each have inheritable fields the 'base' pragma will croak. See the fields manpage, the public manpage and the protected manpage for a description of this feature.
仮想ハッシュの実装における制限から, フィールドを宣言するよりも前に base プラグマを使わなければなりません. Due to the limitations of the pseudo-hash implementation, you must use base before you declare any of your own fields.
スコープ内に strict 'vars' がある時は, base は 'vars' プラグマで @ISA を宣言しないで @ISA を扱える様になります. When strict 'vars' is in scope, base also lets you assign to @ISA without having to declare @ISA with the 'vars' pragma first.
もし基底クラスがまだロードされていなかったのなら, base は
こっそりそれを require します(しかし import メソッドは呼び出しま
せん). 基底クラスパッケージを require するかどうかの決定は
そのパッケージの $VERSION グローバル変数が存在するかどうかで判断されます.
ロード後でも $VERSION が検出されなかったのなら, base は 文字列
-1, set by base.pm をそこに設定します.
If any of the base classes are not loaded yet, base silently
requires them (but it won't call the import method). Whether to
require a base class package is determined by the absence of a global
$VERSION in the base package. If $VERSION is not detected even after
loading it, base will define $VERSION in the base package, setting it to
the string -1, set by base.pm.
このモジュールは Perl 5.004_04 で採用されました. This module was introduced with Perl 5.004_04.
これは Class::Fields パッケージの一部としてインストールされる base.pm です. Perl に同梱されている base.pm ではありません. この base.pm は 5.6.0 の base.pm が行っていること全てを安全に エミュレートするべきです. また, 5.6.0 の全てのリグレッションテストを 通過します. This is the base.pm which was installed as part of the Class::Fields package. NOT the base.pm which is distributed with Perl. This version should safely emulate everything that 5.6.0's base.pm does. It passes all of 5.6.0's regression tests.
これは 5.005_03 でも機能します. しかし仮想ハッシュを要求するのなら 5.6.0 にアップグレードするべきです. It should also work under 5.005_03, although if you're going to be screwing around with pseudohashes you really should upgrade to 5.6.0.
fields マニュアルページ, public マニュアルページ, protected マニュアルページ, protected マニュアルページ, Class::Fields マニュアルページ the fields manpage, the public manpage, the protected manpage, the protected manpage, the Class::Fields manpage