003 File Manager
Current Path:
/usr/local/lib/perl5/5.32/pod
usr
/
local
/
lib
/
perl5
/
5.32
/
pod
/
📁
..
📄
perl.pod
(16.28 KB)
📄
perl5004delta.pod
(54.92 KB)
📄
perl5005delta.pod
(33.48 KB)
📄
perl5100delta.pod
(54.23 KB)
📄
perl5101delta.pod
(42.86 KB)
📄
perl5120delta.pod
(87.18 KB)
📄
perl5121delta.pod
(9.9 KB)
📄
perl5122delta.pod
(9.38 KB)
📄
perl5123delta.pod
(4 KB)
📄
perl5124delta.pod
(3.59 KB)
📄
perl5125delta.pod
(7.5 KB)
📄
perl5140delta.pod
(140.94 KB)
📄
perl5141delta.pod
(7.78 KB)
📄
perl5142delta.pod
(6.73 KB)
📄
perl5143delta.pod
(7.58 KB)
📄
perl5144delta.pod
(6.18 KB)
📄
perl5160delta.pod
(130.52 KB)
📄
perl5161delta.pod
(6 KB)
📄
perl5162delta.pod
(3.51 KB)
📄
perl5163delta.pod
(3.99 KB)
📄
perl5180delta.pod
(116.63 KB)
📄
perl5181delta.pod
(6.44 KB)
📄
perl5182delta.pod
(5.21 KB)
📄
perl5184delta.pod
(4.53 KB)
📄
perl5200delta.pod
(112.99 KB)
📄
perl5201delta.pod
(10.64 KB)
📄
perl5202delta.pod
(12.22 KB)
📄
perl5203delta.pod
(9.17 KB)
📄
perl5220delta.pod
(127.89 KB)
📄
perl5221delta.pod
(10.51 KB)
📄
perl5222delta.pod
(12.33 KB)
📄
perl5223delta.pod
(8.26 KB)
📄
perl5224delta.pod
(4.36 KB)
📄
perl5240delta.pod
(63.4 KB)
📄
perl5241delta.pod
(8.02 KB)
📄
perl5242delta.pod
(4.02 KB)
📄
perl5243delta.pod
(11.16 KB)
📄
perl5244delta.pod
(4.4 KB)
📄
perl5260delta.pod
(99.45 KB)
📄
perl5261delta.pod
(7.74 KB)
📄
perl5262delta.pod
(7.7 KB)
📄
perl5263delta.pod
(6.9 KB)
📄
perl5280delta.pod
(70.42 KB)
📄
perl5281delta.pod
(4.53 KB)
📄
perl5282delta.pod
(6.05 KB)
📄
perl5283delta.pod
(4.99 KB)
📄
perl5300delta.pod
(40.31 KB)
📄
perl5301delta.pod
(5.6 KB)
📄
perl5302delta.pod
(4.57 KB)
📄
perl5303delta.pod
(4.86 KB)
📄
perl5320delta.pod
(53.32 KB)
📄
perl5321delta.pod
(6.84 KB)
📄
perl561delta.pod
(121.79 KB)
📄
perl56delta.pod
(104.69 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.69 KB)
📄
perl589delta.pod
(52.64 KB)
📄
perl58delta.pod
(112.47 KB)
📄
perlaix.pod
(19.96 KB)
📄
perlamiga.pod
(5.61 KB)
📄
perlandroid.pod
(8.03 KB)
📄
perlapi.pod
(481.17 KB)
📄
perlapio.pod
(20.84 KB)
📄
perlartistic.pod
(6.85 KB)
📄
perlbook.pod
(8.19 KB)
📄
perlboot.pod
(294 B)
📄
perlbot.pod
(304 B)
📄
perlbs2000.pod
(7.81 KB)
📄
perlcall.pod
(55.41 KB)
📄
perlcheat.pod
(4.38 KB)
📄
perlclib.pod
(9.38 KB)
📄
perlcn.pod
(4.65 KB)
📄
perlcommunity.pod
(6.82 KB)
📄
perlcygwin.pod
(26.56 KB)
📄
perldata.pod
(48.62 KB)
📄
perldbmfilter.pod
(4.86 KB)
📄
perldebguts.pod
(41.34 KB)
📄
perldebtut.pod
(21.63 KB)
📄
perldebug.pod
(38.46 KB)
📄
perldelta.pod
(6.84 KB)
📄
perldeprecation.pod
(20.34 KB)
📄
perldiag.pod
(287.99 KB)
📄
perldoc.pod
(9.16 KB)
📄
perldos.pod
(10.28 KB)
📄
perldsc.pod
(25.01 KB)
📄
perldtrace.pod
(7.77 KB)
📄
perlebcdic.pod
(82.37 KB)
📄
perlembed.pod
(36.69 KB)
📄
perlexperiment.pod
(7.06 KB)
📄
perlfaq.pod
(22.24 KB)
📄
perlfaq1.pod
(14.09 KB)
📄
perlfaq2.pod
(9.16 KB)
📄
perlfaq3.pod
(36.72 KB)
📄
perlfaq4.pod
(86.87 KB)
📄
perlfaq5.pod
(54.21 KB)
📄
perlfaq6.pod
(38.73 KB)
📄
perlfaq7.pod
(36.93 KB)
📄
perlfaq8.pod
(48.77 KB)
📄
perlfaq9.pod
(14.86 KB)
📄
perlfilter.pod
(21.8 KB)
📄
perlfork.pod
(13.04 KB)
📄
perlform.pod
(16.22 KB)
📄
perlfreebsd.pod
(1.58 KB)
📄
perlfunc.pod
(394.31 KB)
📄
perlgit.pod
(28.9 KB)
📄
perlglossary.pod
(134.02 KB)
📄
perlgov.pod
(14.14 KB)
📄
perlgpl.pod
(13.49 KB)
📄
perlguts.pod
(158.3 KB)
📄
perlhack.pod
(42.15 KB)
📄
perlhacktips.pod
(56.34 KB)
📄
perlhacktut.pod
(6.01 KB)
📄
perlhaiku.pod
(1.47 KB)
📄
perlhist.pod
(54.85 KB)
📄
perlhpux.pod
(29.89 KB)
📄
perlhurd.pod
(1.95 KB)
📄
perlintern.pod
(81.61 KB)
📄
perlinterp.pod
(32.92 KB)
📄
perlintro.pod
(21.62 KB)
📄
perliol.pod
(33.99 KB)
📄
perlipc.pod
(69.85 KB)
📄
perlirix.pod
(4.31 KB)
📄
perljp.pod
(8.23 KB)
📄
perlko.pod
(11.92 KB)
📄
perllexwarn.pod
(355 B)
📄
perllinux.pod
(1.96 KB)
📄
perllocale.pod
(72.38 KB)
📄
perllol.pod
(9.36 KB)
📄
perlmacos.pod
(998 B)
📄
perlmacosx.pod
(11.84 KB)
📄
perlmod.pod
(25.58 KB)
📄
perlmodinstall.pod
(10.02 KB)
📄
perlmodlib.pod
(74.47 KB)
📄
perlmodstyle.pod
(22.06 KB)
📄
perlmroapi.pod
(3.2 KB)
📄
perlnetware.pod
(6.49 KB)
📄
perlnewmod.pod
(10.78 KB)
📄
perlnumber.pod
(8.16 KB)
📄
perlobj.pod
(34.88 KB)
📄
perlootut.pod
(26.13 KB)
📄
perlop.pod
(145.4 KB)
📄
perlopenbsd.pod
(1.2 KB)
📄
perlopentut.pod
(14.87 KB)
📄
perlos2.pod
(91.16 KB)
📄
perlos390.pod
(16.14 KB)
📄
perlos400.pod
(4.65 KB)
📄
perlpacktut.pod
(50.17 KB)
📄
perlperf.pod
(48.71 KB)
📄
perlplan9.pod
(5 KB)
📄
perlpod.pod
(22.54 KB)
📄
perlpodspec.pod
(67.02 KB)
📄
perlpodstyle.pod
(11.81 KB)
📄
perlpolicy.pod
(25.94 KB)
📄
perlport.pod
(86.61 KB)
📄
perlpragma.pod
(5.05 KB)
📄
perlqnx.pod
(6.52 KB)
📄
perlre.pod
(127.75 KB)
📄
perlreapi.pod
(29.54 KB)
📄
perlrebackslash.pod
(31.53 KB)
📄
perlrecharclass.pod
(48.54 KB)
📄
perlref.pod
(34.6 KB)
📄
perlreftut.pod
(18.38 KB)
📄
perlreguts.pod
(38.38 KB)
📄
perlrepository.pod
(509 B)
📄
perlrequick.pod
(18.69 KB)
📄
perlreref.pod
(15.22 KB)
📄
perlretut.pod
(119.66 KB)
📄
perlriscos.pod
(1.49 KB)
📄
perlrun.pod
(54.67 KB)
📄
perlsec.pod
(26.95 KB)
📄
perlsecpolicy.pod
(18.99 KB)
📄
perlsolaris.pod
(29.14 KB)
📄
perlsource.pod
(6.96 KB)
📄
perlstyle.pod
(8.53 KB)
📄
perlsub.pod
(72.66 KB)
📄
perlsymbian.pod
(14.98 KB)
📄
perlsyn.pod
(44.08 KB)
📄
perlsynology.pod
(7.77 KB)
📄
perlthrtut.pod
(45.43 KB)
📄
perltie.pod
(38.39 KB)
📄
perltoc.pod
(684.57 KB)
📄
perltodo.pod
(372 B)
📄
perltooc.pod
(294 B)
📄
perltoot.pod
(294 B)
📄
perltrap.pod
(10.37 KB)
📄
perltru64.pod
(8.29 KB)
📄
perltw.pod
(4.36 KB)
📄
perlunicode.pod
(89.21 KB)
📄
perlunicook.pod
(25.06 KB)
📄
perlunifaq.pod
(13.32 KB)
📄
perluniintro.pod
(37.74 KB)
📄
perluniprops.pod
(431.26 KB)
📄
perlunitut.pod
(7.76 KB)
📄
perlutil.pod
(7.12 KB)
📄
perlvar.pod
(80.64 KB)
📄
perlvms.pod
(49.63 KB)
📄
perlvos.pod
(3.75 KB)
📄
perlwin32.pod
(39.37 KB)
📄
perlxs.pod
(82.87 KB)
📄
perlxstut.pod
(48.92 KB)
📄
perlxstypemap.pod
(23.44 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); =for apidoc mro_get_private_data To set your private value, call C<Perl_mro_set_private_data()>: Perl_mro_set_private_data(aTHX_ meta, &c3_alg, private_sv); =for apidoc mro_set_private_data 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<ext/mro/mro.xs>, and C<S_mro_get_linear_isa_dfs()> in F<mro_core.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