1 .\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.10)
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
9 .de Vb \" Begin verbatim text
14 .de Ve \" End verbatim text
18 .\" Set up some character translations and predefined strings. \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote. \*(C+ will
21 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
29 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD. Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
53 . tm Index:\\$1\t\\n%\t"\\$2"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear. Run. Save yourself. No user-serviceable parts.
65 . \" fudge factors for nroff and troff
74 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80 . \" simple accents for nroff and troff
90 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
97 . \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 . \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 . \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
124 .\" ========================================================================
127 .TH parent 3 "2009-09-01" "perl v5.8.7" "User Contributed Perl Documentation"
128 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
133 parent \- Establish an ISA relationship with base classes at compile time
135 .IX Header "SYNOPSIS"
138 \& use parent qw(Foo Bar);
141 .IX Header "DESCRIPTION"
142 Allows you to both load one or more modules, while setting up inheritance from
143 those modules at the same time. Mostly similar in effect to
150 \& push @ISA, qw(Foo Bar);
154 By default, every base class needs to live in a file of its own.
155 If you want to have a subclass and its parent class in the same file, you
156 can tell \f(CW\*(C`parent\*(C'\fR not to load any modules by using the \f(CW\*(C`\-norequire\*(C'\fR switch:
160 \& sub exclaim { "I CAN HAS PERL" }
162 \& package DoesNotLoadFooBar;
163 \& use parent \-norequire, \*(AqFoo\*(Aq, \*(AqBar\*(Aq;
164 \& # will not go looking for Foo.pm or Bar.pm
167 This is equivalent to the following code:
171 \& sub exclaim { "I CAN HAS PERL" }
173 \& package DoesNotLoadFooBar;
174 \& push @DoesNotLoadFooBar::ISA, \*(AqFoo\*(Aq, \*(AqBar\*(Aq;
177 This is also helpful for the case where a package lives within
178 a differently named file:
183 \& use parent \-norequire, \*(AqTie::StdHash\*(Aq;
186 This is equivalent to the following code:
190 \& require Tie::Hash;
191 \& push @ISA, \*(AqTie::StdHash\*(Aq;
194 If you want to load a subclass from a file that \f(CW\*(C`require\*(C'\fR would
195 not consider an eligible filename (that is, it does not end in
196 either \f(CW\*(C`.pm\*(C'\fR or \f(CW\*(C`.pmc\*(C'\fR), use the following code:
199 \& package MySecondPlugin;
200 \& require \*(Aq./plugins/custom.plugin\*(Aq; # contains Plugin::Custom
201 \& use parent \-norequire, \*(AqPlugin::Custom\*(Aq;
204 .IX Header "DIAGNOSTICS"
205 .IP "Class 'Foo' tried to inherit from itself" 4
206 .IX Item "Class 'Foo' tried to inherit from itself"
207 Attempting to inherit from yourself generates a warning.
211 \& use parent \*(AqFoo\*(Aq;
215 This module was forked from base to remove the cruft
216 that had accumulated in it.
220 .IX Header "SEE ALSO"
222 .SH "AUTHORS AND CONTRIBUTORS"
223 .IX Header "AUTHORS AND CONTRIBUTORS"
224 Rafae\*:l Garcia-Suarez, Bart Lateur, Max Maischein, Anno Siegel, Michael Schwern
226 .IX Header "MAINTAINER"
227 Max Maischein \f(CW\*(C` corion@cpan.org \*(C'\fR
229 Copyright (c) 2007 Max Maischein \f(CW\*(C`<corion@cpan.org>\*(C'\fR
230 Based on the idea of \f(CW\*(C`base.pm\*(C'\fR, which was introduced with Perl 5.004_04.
233 This module is released under the same terms as Perl itself.