SM0 She11
Path:
/
/
usr
/
share
/
perl5
/
pod
Full Path (server): /usr/share/perl5/pod
Create Fil3
Upl04d Fil3
📄 a2p.pod
[E]
[D]
[R]
📄 perl.pod
[E]
[D]
[R]
📄 perl5004delta.pod
[E]
[D]
[R]
📄 perl5005delta.pod
[E]
[D]
[R]
📄 perl5100delta.pod
[E]
[D]
[R]
📄 perl5101delta.pod
[E]
[D]
[R]
📄 perl5120delta.pod
[E]
[D]
[R]
📄 perl5121delta.pod
[E]
[D]
[R]
📄 perl5122delta.pod
[E]
[D]
[R]
📄 perl5123delta.pod
[E]
[D]
[R]
📄 perl5124delta.pod
[E]
[D]
[R]
📄 perl5140delta.pod
[E]
[D]
[R]
📄 perl5141delta.pod
[E]
[D]
[R]
📄 perl5142delta.pod
[E]
[D]
[R]
📄 perl5143delta.pod
[E]
[D]
[R]
📄 perl5160delta.pod
[E]
[D]
[R]
📄 perl5161delta.pod
[E]
[D]
[R]
📄 perl5162delta.pod
[E]
[D]
[R]
📄 perl5163delta.pod
[E]
[D]
[R]
📄 perl561delta.pod
[E]
[D]
[R]
📄 perl56delta.pod
[E]
[D]
[R]
📄 perl581delta.pod
[E]
[D]
[R]
📄 perl582delta.pod
[E]
[D]
[R]
📄 perl583delta.pod
[E]
[D]
[R]
📄 perl584delta.pod
[E]
[D]
[R]
📄 perl585delta.pod
[E]
[D]
[R]
📄 perl586delta.pod
[E]
[D]
[R]
📄 perl587delta.pod
[E]
[D]
[R]
📄 perl588delta.pod
[E]
[D]
[R]
📄 perl589delta.pod
[E]
[D]
[R]
📄 perl58delta.pod
[E]
[D]
[R]
📄 perlaix.pod
[E]
[D]
[R]
📄 perlamiga.pod
[E]
[D]
[R]
📄 perlapi.pod
[E]
[D]
[R]
📄 perlapio.pod
[E]
[D]
[R]
📄 perlartistic.pod
[E]
[D]
[R]
📄 perlbeos.pod
[E]
[D]
[R]
📄 perlbook.pod
[E]
[D]
[R]
📄 perlboot.pod
[E]
[D]
[R]
📄 perlbot.pod
[E]
[D]
[R]
📄 perlbs2000.pod
[E]
[D]
[R]
📄 perlcall.pod
[E]
[D]
[R]
📄 perlce.pod
[E]
[D]
[R]
📄 perlcheat.pod
[E]
[D]
[R]
📄 perlclib.pod
[E]
[D]
[R]
📄 perlcn.pod
[E]
[D]
[R]
📄 perlcommunity.pod
[E]
[D]
[R]
📄 perlcygwin.pod
[E]
[D]
[R]
📄 perldata.pod
[E]
[D]
[R]
📄 perldbmfilter.pod
[E]
[D]
[R]
📄 perldebguts.pod
[E]
[D]
[R]
📄 perldebtut.pod
[E]
[D]
[R]
📄 perldebug.pod
[E]
[D]
[R]
📄 perldelta.pod
[E]
[D]
[R]
📄 perldgux.pod
[E]
[D]
[R]
📄 perldiag.pod
[E]
[D]
[R]
📄 perldos.pod
[E]
[D]
[R]
📄 perldsc.pod
[E]
[D]
[R]
📄 perldtrace.pod
[E]
[D]
[R]
📄 perlebcdic.pod
[E]
[D]
[R]
📄 perlembed.pod
[E]
[D]
[R]
📄 perlepoc.pod
[E]
[D]
[R]
📄 perlexperiment.pod
[E]
[D]
[R]
📄 perlfaq.pod
[E]
[D]
[R]
📄 perlfaq1.pod
[E]
[D]
[R]
📄 perlfaq2.pod
[E]
[D]
[R]
📄 perlfaq3.pod
[E]
[D]
[R]
📄 perlfaq4.pod
[E]
[D]
[R]
📄 perlfaq5.pod
[E]
[D]
[R]
📄 perlfaq6.pod
[E]
[D]
[R]
📄 perlfaq7.pod
[E]
[D]
[R]
📄 perlfaq8.pod
[E]
[D]
[R]
📄 perlfaq9.pod
[E]
[D]
[R]
📄 perlfork.pod
[E]
[D]
[R]
📄 perlform.pod
[E]
[D]
[R]
📄 perlfreebsd.pod
[E]
[D]
[R]
📄 perlfunc.pod
[E]
[D]
[R]
📄 perlgit.pod
[E]
[D]
[R]
📄 perlglossary.pod
[E]
[D]
[R]
📄 perlgpl.pod
[E]
[D]
[R]
📄 perlguts.pod
[E]
[D]
[R]
📄 perlhack.pod
[E]
[D]
[R]
📄 perlhacktips.pod
[E]
[D]
[R]
📄 perlhacktut.pod
[E]
[D]
[R]
📄 perlhaiku.pod
[E]
[D]
[R]
📄 perlhist.pod
[E]
[D]
[R]
📄 perlhpux.pod
[E]
[D]
[R]
📄 perlhurd.pod
[E]
[D]
[R]
📄 perlintern.pod
[E]
[D]
[R]
📄 perlinterp.pod
[E]
[D]
[R]
📄 perlintro.pod
[E]
[D]
[R]
📄 perliol.pod
[E]
[D]
[R]
📄 perlipc.pod
[E]
[D]
[R]
📄 perlirix.pod
[E]
[D]
[R]
📄 perljp.pod
[E]
[D]
[R]
📄 perlko.pod
[E]
[D]
[R]
📄 perllexwarn.pod
[E]
[D]
[R]
📄 perllinux.pod
[E]
[D]
[R]
📄 perllocale.pod
[E]
[D]
[R]
📄 perllol.pod
[E]
[D]
[R]
📄 perlmacos.pod
[E]
[D]
[R]
📄 perlmacosx.pod
[E]
[D]
[R]
📄 perlmod.pod
[E]
[D]
[R]
📄 perlmodinstall.pod
[E]
[D]
[R]
📄 perlmodlib.pod
[E]
[D]
[R]
📄 perlmodstyle.pod
[E]
[D]
[R]
📄 perlmpeix.pod
[E]
[D]
[R]
📄 perlmroapi.pod
[E]
[D]
[R]
📄 perlnetware.pod
[E]
[D]
[R]
📄 perlnewmod.pod
[E]
[D]
[R]
📄 perlnumber.pod
[E]
[D]
[R]
📄 perlobj.pod
[E]
[D]
[R]
📄 perlootut.pod
[E]
[D]
[R]
📄 perlop.pod
[E]
[D]
[R]
📄 perlopenbsd.pod
[E]
[D]
[R]
📄 perlopentut.pod
[E]
[D]
[R]
📄 perlos2.pod
[E]
[D]
[R]
📄 perlos390.pod
[E]
[D]
[R]
📄 perlos400.pod
[E]
[D]
[R]
📄 perlpacktut.pod
[E]
[D]
[R]
📄 perlperf.pod
[E]
[D]
[R]
📄 perlplan9.pod
[E]
[D]
[R]
📄 perlpod.pod
[E]
[D]
[R]
📄 perlpodspec.pod
[E]
[D]
[R]
📄 perlpolicy.pod
[E]
[D]
[R]
📄 perlport.pod
[E]
[D]
[R]
📄 perlpragma.pod
[E]
[D]
[R]
📄 perlqnx.pod
[E]
[D]
[R]
📄 perlre.pod
[E]
[D]
[R]
📄 perlreapi.pod
[E]
[D]
[R]
📄 perlrebackslash.pod
[E]
[D]
[R]
📄 perlrecharclass.pod
[E]
[D]
[R]
📄 perlref.pod
[E]
[D]
[R]
📄 perlreftut.pod
[E]
[D]
[R]
📄 perlreguts.pod
[E]
[D]
[R]
📄 perlrequick.pod
[E]
[D]
[R]
📄 perlreref.pod
[E]
[D]
[R]
📄 perlretut.pod
[E]
[D]
[R]
📄 perlriscos.pod
[E]
[D]
[R]
📄 perlrun.pod
[E]
[D]
[R]
📄 perlsec.pod
[E]
[D]
[R]
📄 perlsolaris.pod
[E]
[D]
[R]
📄 perlsource.pod
[E]
[D]
[R]
📄 perlstyle.pod
[E]
[D]
[R]
📄 perlsub.pod
[E]
[D]
[R]
📄 perlsymbian.pod
[E]
[D]
[R]
📄 perlsyn.pod
[E]
[D]
[R]
📄 perlthrtut.pod
[E]
[D]
[R]
📄 perltie.pod
[E]
[D]
[R]
📄 perltoc.pod
[E]
[D]
[R]
📄 perltodo.pod
[E]
[D]
[R]
📄 perltooc.pod
[E]
[D]
[R]
📄 perltoot.pod
[E]
[D]
[R]
📄 perltrap.pod
[E]
[D]
[R]
📄 perltru64.pod
[E]
[D]
[R]
📄 perltw.pod
[E]
[D]
[R]
📄 perlunicode.pod
[E]
[D]
[R]
📄 perlunifaq.pod
[E]
[D]
[R]
📄 perluniintro.pod
[E]
[D]
[R]
📄 perluniprops.pod
[E]
[D]
[R]
📄 perlunitut.pod
[E]
[D]
[R]
📄 perlutil.pod
[E]
[D]
[R]
📄 perluts.pod
[E]
[D]
[R]
📄 perlvar.pod
[E]
[D]
[R]
📄 perlvmesa.pod
[E]
[D]
[R]
📄 perlvms.pod
[E]
[D]
[R]
📄 perlvos.pod
[E]
[D]
[R]
📄 perlwin32.pod
[E]
[D]
[R]
📄 perlxs.pod
[E]
[D]
[R]
📄 perlxstut.pod
[E]
[D]
[R]
📄 perlxstypemap.pod
[E]
[D]
[R]
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
Save