PHP 7.4.33
Preview: perlmroapi.pod Size: 3.14 KB
/home/godevadmin/public_html/upload_images/home/000~ROOT~000/usr/share/perl5/pod/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<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

Directory Contents

Dirs: 0 × Files: 183

Name Size Perms Modified Actions
15.89 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
104.69 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
112.47 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
121.79 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
37.17 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.37 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
6.19 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.19 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
5.75 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.54 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
8.16 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
24.68 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
52.64 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
54.92 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
33.48 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
54.23 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
42.86 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
87.18 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
9.90 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
9.38 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.00 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
3.59 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.50 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
140.94 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.78 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
6.73 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.58 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
6.18 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
130.52 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
6.00 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
3.51 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
3.99 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
116.63 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
6.44 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
5.21 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.53 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
112.99 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
10.64 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
12.22 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
9.17 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
127.89 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
10.51 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
12.33 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
8.26 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.36 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
63.41 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
8.02 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.02 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
11.16 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.40 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
99.45 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.74 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.70 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
6.90 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
70.42 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
19.96 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
5.61 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.69 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
433.14 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
18.83 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
6.85 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
8.14 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
294 B lrw-r--r-- 2023-05-18 21:34:54
Edit Download
304 B lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.87 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
55.38 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
14.26 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.38 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
9.39 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.58 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.05 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
26.56 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
45.65 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.86 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
37.63 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
21.63 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
38.34 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
6.90 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
17.74 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
277.90 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
10.28 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
25.01 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.77 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
82.26 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
36.32 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.03 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
13.04 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
16.22 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
1.57 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
383.75 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
32.72 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
13.49 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
136.06 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
39.50 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
54.21 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
6.01 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
1.47 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
52.29 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
29.79 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
1.95 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
53.29 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
32.90 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
21.60 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
33.38 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
69.17 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.29 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.34 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
11.97 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
355 B lrw-r--r-- 2023-05-18 21:34:54
Edit Download
1.45 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
67.07 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
9.36 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
1001 B lrw-r--r-- 2023-05-18 21:34:54
Edit Download
11.78 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
25.63 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
12.49 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
74.69 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
22.05 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
3.14 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
6.49 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
10.78 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
8.16 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
34.70 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
26.16 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
133.06 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
1.18 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
9.23 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
91.16 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
15.31 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.66 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
50.08 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
48.71 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
5.00 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
21.68 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
66.87 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
25.03 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
85.55 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
5.05 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
6.52 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
118.07 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
29.62 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
31.07 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
47.88 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
34.48 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
18.35 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
37.43 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
509 B lrw-r--r-- 2023-05-18 21:34:54
Edit Download
18.06 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
14.40 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
118.42 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
1.49 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
52.29 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
25.57 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
29.12 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
6.71 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
8.43 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
71.26 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
15.00 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
43.47 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.60 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
45.37 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
37.70 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
677.89 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
376 B lrw-r--r-- 2023-05-18 21:34:54
Edit Download
294 B lrw-r--r-- 2023-05-18 21:34:54
Edit Download
294 B lrw-r--r-- 2023-05-18 21:34:54
Edit Download
10.37 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
8.29 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
4.37 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
80.56 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
24.89 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
13.33 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
37.44 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
278.62 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.76 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
7.46 KB lrw-r--r-- 2023-05-18 21:36:25
Edit Download
76.53 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
49.63 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
3.75 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
38.38 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
77.07 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
48.92 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download
23.44 KB lrw-r--r-- 2023-05-18 21:34:54
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).