X7ROOT File Manager
Current Path:
/usr/share/perl5/pod
usr
/
share
/
perl5
/
pod
/
📁
..
📄
a2p.pod
(5.96 KB)
📄
perl.pod
(15.43 KB)
📄
perl5004delta.pod
(54.92 KB)
📄
perl5005delta.pod
(33.48 KB)
📄
perl5100delta.pod
(53.41 KB)
📄
perl5101delta.pod
(42.86 KB)
📄
perl5120delta.pod
(87.19 KB)
📄
perl5121delta.pod
(9.91 KB)
📄
perl5122delta.pod
(9.38 KB)
📄
perl5123delta.pod
(4 KB)
📄
perl5124delta.pod
(3.59 KB)
📄
perl5140delta.pod
(140.94 KB)
📄
perl5141delta.pod
(7.78 KB)
📄
perl5142delta.pod
(6.73 KB)
📄
perl5143delta.pod
(7.58 KB)
📄
perl5160delta.pod
(130.52 KB)
📄
perl5161delta.pod
(6 KB)
📄
perl5162delta.pod
(3.51 KB)
📄
perl5163delta.pod
(3.99 KB)
📄
perl561delta.pod
(121.79 KB)
📄
perl56delta.pod
(104.68 KB)
📄
perl581delta.pod
(37.17 KB)
📄
perl582delta.pod
(4.37 KB)
📄
perl583delta.pod
(6.19 KB)
📄
perl584delta.pod
(7.19 KB)
📄
perl585delta.pod
(5.75 KB)
📄
perl586delta.pod
(4.54 KB)
📄
perl587delta.pod
(8.16 KB)
📄
perl588delta.pod
(24.68 KB)
📄
perl589delta.pod
(52.64 KB)
📄
perl58delta.pod
(112.21 KB)
📄
perlaix.pod
(18.77 KB)
📄
perlamiga.pod
(6.87 KB)
📄
perlapi.pod
(315.46 KB)
📄
perlapio.pod
(18.88 KB)
📄
perlartistic.pod
(6.85 KB)
📄
perlbeos.pod
(2.87 KB)
📄
perlbook.pod
(7.19 KB)
📄
perlboot.pod
(183 B)
📄
perlbot.pod
(182 B)
📄
perlbs2000.pod
(7.73 KB)
📄
perlcall.pod
(54.03 KB)
📄
perlce.pod
(8.72 KB)
📄
perlcheat.pod
(4.39 KB)
📄
perlclib.pod
(7.5 KB)
📄
perlcn.pod
(4.82 KB)
📄
perlcommunity.pod
(6.29 KB)
📄
perlcygwin.pod
(27.17 KB)
📄
perldata.pod
(36.33 KB)
📄
perldbmfilter.pod
(4.86 KB)
📄
perldebguts.pod
(36.79 KB)
📄
perldebtut.pod
(20.79 KB)
📄
perldebug.pod
(38.15 KB)
📄
perldelta.pod
(3.99 KB)
📄
perldgux.pod
(2.75 KB)
📄
perldiag.pod
(207.82 KB)
📄
perldos.pod
(10.28 KB)
📄
perldsc.pod
(24.84 KB)
📄
perldtrace.pod
(6.21 KB)
📄
perlebcdic.pod
(67.61 KB)
📄
perlembed.pod
(35.21 KB)
📄
perlepoc.pod
(3.57 KB)
📄
perlexperiment.pod
(4.84 KB)
📄
perlfaq.pod
(22.01 KB)
📄
perlfaq1.pod
(13.52 KB)
📄
perlfaq2.pod
(9.28 KB)
📄
perlfaq3.pod
(37.46 KB)
📄
perlfaq4.pod
(87.39 KB)
📄
perlfaq5.pod
(54.11 KB)
📄
perlfaq6.pod
(38.66 KB)
📄
perlfaq7.pod
(36.35 KB)
📄
perlfaq8.pod
(48.28 KB)
📄
perlfaq9.pod
(14.71 KB)
📄
perlfork.pod
(12.78 KB)
📄
perlform.pod
(16.29 KB)
📄
perlfreebsd.pod
(1.55 KB)
📄
perlfunc.pod
(338.43 KB)
📄
perlgit.pod
(29.75 KB)
📄
perlglossary.pod
(110.66 KB)
📄
perlgpl.pod
(13.54 KB)
📄
perlguts.pod
(111.66 KB)
📄
perlhack.pod
(35.03 KB)
📄
perlhacktips.pod
(45.5 KB)
📄
perlhacktut.pod
(6.07 KB)
📄
perlhaiku.pod
(1.47 KB)
📄
perlhist.pod
(43.32 KB)
📄
perlhpux.pod
(28.07 KB)
📄
perlhurd.pod
(1.94 KB)
📄
perlintern.pod
(42.53 KB)
📄
perlinterp.pod
(30 KB)
📄
perlintro.pod
(22.08 KB)
📄
perliol.pod
(33.03 KB)
📄
perlipc.pod
(70.17 KB)
📄
perlirix.pod
(4.29 KB)
📄
perljp.pod
(7.57 KB)
📄
perlko.pod
(7.52 KB)
📄
perllexwarn.pod
(14.61 KB)
📄
perllinux.pod
(1.45 KB)
📄
perllocale.pod
(51.43 KB)
📄
perllol.pod
(10.93 KB)
📄
perlmacos.pod
(1001 B)
📄
perlmacosx.pod
(10.4 KB)
📄
perlmod.pod
(24.04 KB)
📄
perlmodinstall.pod
(12.41 KB)
📄
perlmodlib.pod
(78.49 KB)
📄
perlmodstyle.pod
(20.76 KB)
📄
perlmpeix.pod
(14.24 KB)
📄
perlmroapi.pod
(3.13 KB)
📄
perlnetware.pod
(6.35 KB)
📄
perlnewmod.pod
(10.95 KB)
📄
perlnumber.pod
(8.16 KB)
📄
perlobj.pod
(33.65 KB)
📄
perlootut.pod
(25.6 KB)
📄
perlop.pod
(121.73 KB)
📄
perlopenbsd.pod
(1.18 KB)
📄
perlopentut.pod
(37.53 KB)
📄
perlos2.pod
(90.53 KB)
📄
perlos390.pod
(15.2 KB)
📄
perlos400.pod
(4.51 KB)
📄
perlpacktut.pod
(49.83 KB)
📄
perlperf.pod
(50.05 KB)
📄
perlplan9.pod
(5 KB)
📄
perlpod.pod
(21.27 KB)
📄
perlpodspec.pod
(66.2 KB)
📄
perlpolicy.pod
(19.73 KB)
📄
perlport.pod
(82.63 KB)
📄
perlpragma.pod
(5.11 KB)
📄
perlqnx.pod
(4.14 KB)
📄
perlre.pod
(100.76 KB)
📄
perlreapi.pod
(25.17 KB)
📄
perlrebackslash.pod
(25.64 KB)
📄
perlrecharclass.pod
(34.19 KB)
📄
perlref.pod
(28.32 KB)
📄
perlreftut.pod
(18.23 KB)
📄
perlreguts.pod
(36 KB)
📄
perlrequick.pod
(17.5 KB)
📄
perlreref.pod
(14.19 KB)
📄
perlretut.pod
(115.13 KB)
📄
perlriscos.pod
(1.49 KB)
📄
perlrun.pod
(49.58 KB)
📄
perlsec.pod
(22.77 KB)
📄
perlsolaris.pod
(28.63 KB)
📄
perlsource.pod
(6.19 KB)
📄
perlstyle.pod
(8.42 KB)
📄
perlsub.pod
(55.15 KB)
📄
perlsymbian.pod
(15.44 KB)
📄
perlsyn.pod
(41.04 KB)
📄
perlthrtut.pod
(45.41 KB)
📄
perltie.pod
(37.02 KB)
📄
perltoc.pod
(639 KB)
📄
perltodo.pod
(362 B)
📄
perltooc.pod
(183 B)
📄
perltoot.pod
(183 B)
📄
perltrap.pod
(40.28 KB)
📄
perltru64.pod
(7.55 KB)
📄
perltw.pod
(5.15 KB)
📄
perlunicode.pod
(70.89 KB)
📄
perlunifaq.pod
(13.31 KB)
📄
perluniintro.pod
(35.44 KB)
📄
perluniprops.pod
(229.74 KB)
📄
perlunitut.pod
(7.76 KB)
📄
perlutil.pod
(9.68 KB)
📄
perluts.pod
(3.11 KB)
📄
perlvar.pod
(69.19 KB)
📄
perlvmesa.pod
(3.88 KB)
📄
perlvms.pod
(51.33 KB)
📄
perlvos.pod
(5.82 KB)
📄
perlwin32.pod
(34.58 KB)
📄
perlxs.pod
(71.66 KB)
📄
perlxstut.pod
(48.52 KB)
📄
perlxstypemap.pod
(22.97 KB)
Editing: perlmroapi.pod
=head1 NAME perlmroapi - Perl method resolution plugin interface =head1 DESCRIPTION As of Perl 5.10.1 there is a new interface for plugging and using method resolution orders other than the default (linear depth first search). The C3 method resolution order added in 5.10.0 has been re-implemented as a plugin, without changing its Perl-space interface. Each plugin should register itself by providing the following structure struct mro_alg { AV *(*resolve)(pTHX_ HV *stash, U32 level); const char *name; U16 length; U16 kflags; U32 hash; }; and calling C<Perl_mro_register>: Perl_mro_register(aTHX_ &my_mro_alg); =over 4 =item resolve Pointer to the linearisation function, described below. =item name Name of the MRO, either in ISO-8859-1 or UTF-8. =item length Length of the name. =item kflags If the name is given in UTF-8, set this to C<HVhek_UTF8>. The value is passed direct as the parameter I<kflags> to C<hv_common()>. =item hash A precomputed hash value for the MRO's name, or 0. =back =head1 Callbacks The C<resolve> function is called to generate a linearised ISA for the given stash, using this MRO. It is called with a pointer to the stash, and a I<level> of 0. The core always sets I<level> to 0 when it calls your function - the parameter is provided to allow your implementation to track depth if it needs to recurse. The function should return a reference to an array containing the parent classes in order. The names of the classes should be the result of calling C<HvENAME()> on the stash. In those cases where C<HvENAME()> returns null, C<HvNAME()> should be used instead. The caller is responsible for incrementing the reference count of the array returned if it wants to keep the structure. Hence, if you have created a temporary value that you keep no pointer to, C<sv_2mortal()> to ensure that it is disposed of correctly. If you have cached your return value, then return a pointer to it without changing the reference count. =head1 Caching Computing MROs can be expensive. The implementation provides a cache, in which you can store a single C<SV *>, or anything that can be cast to C<SV *>, such as C<AV *>. To read your private value, use the macro C<MRO_GET_PRIVATE_DATA()>, passing it the C<mro_meta> structure from the stash, and a pointer to your C<mro_alg> structure: meta = HvMROMETA(stash); private_sv = MRO_GET_PRIVATE_DATA(meta, &my_mro_alg); To set your private value, call C<Perl_mro_set_private_data()>: Perl_mro_set_private_data(aTHX_ meta, &c3_alg, private_sv); The private data cache will take ownership of a reference to private_sv, much the same way that C<hv_store()> takes ownership of a reference to the value that you pass it. =head1 Examples For examples of MRO implementations, see C<S_mro_get_linear_isa_c3()> and the C<BOOT:> section of F<mro/mro.xs>, and C<S_mro_get_linear_isa_dfs()> in F<mro.c> =head1 AUTHORS The implementation of the C3 MRO and switchable MROs within the perl core was written by Brandon L Black. Nicholas Clark created the pluggable interface, refactored Brandon's implementation to work with it, and wrote this document. =cut
Upload File
Create Folder