PragmasEstablish an ISA relationship with base classes at compile timeDaftar Isi NAMEparent - Establish an ISA relationship with base classes at compile time SYNOPSIS- package Baz;
- use parent qw(Foo Bar);
DESCRIPTIONAllows you to both load one or more modules, while setting up inheritance fromthose 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, youcan tell parent not to load any modules by using the -norequire switch: - 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', 'Bar';
This is also helpful for the case where a package lives withina 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 wouldnot consider an eligible filename (that is, it does not end ineither .pm or .pmc ), use the following code: - package MySecondPlugin;
- require './plugins/custom.plugin'; # contains Plugin::Custom
- use parent -norequire, 'Plugin::Custom';
DIAGNOSTICSHISTORYThis module was forked from base to remove the cruftthat had accumulated in it. CAVEATSSEE ALSObase AUTHORS AND CONTRIBUTORSRafaël Garcia-Suarez, Bart Lateur, Max Maischein, Anno Siegel, Michael Schwern MAINTAINERMax Maischein corion@cpan.org Copyright (c) 2007-10 Max Maischein <[email protected]> Based on the idea of base.pm , which was introduced with Perl 5.004_04. LICENSEThis module is released under the same terms as Perl itself. |