parent-0.221 > parent

名前

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

base

AUTHORS AND CONTRIBUTORS

Rafaël Garcia-Suarez, Bart Lateur, Max Maischein, Anno Siegel, Michael Schwern

MAINTAINER

Max Maischein corion@cpan.org

Copyright (c) 2007 Max Maischein <corion@cpan.org> 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.