diff --git a/gv.c b/gv.c index 28d9fea74193..926db3aa4954 100644 --- a/gv.c +++ b/gv.c @@ -331,7 +331,6 @@ Perl_cvstash_set(pTHX_ CV *cv, HV *stash) } /* - =for apidoc gv_init =for apidoc_item gv_init_pv =for apidoc_item gv_init_pvn @@ -343,21 +342,27 @@ overwriting it as happens with typeglobs created by C. Converting any scalar that is C may produce unpredictable results and is reserved for perl's internal use. +They differ only in how the name is specified, and C lacks a C +parameter, but has a boolean C parameter instead. + C is the scalar to be converted. -C is the parent stash/package, if any. +C is the parent stash/package, if any; or NULL if none. + +In C and C, C points to the first byte of the +string specifying the name, and an additional parameter, C, specifies its +length in bytes. Hence, C may contain embedded-NUL characters. -In C and C, C and C give the name. The name -must be unqualified; that is, it must not include the package name. If C -is a stash element, it is the caller's responsibility to ensure that the name -passed to this function matches the name of the element. If it does not match, -perl's internal bookkeeping will get out of sync. C may contain embedded -NUL characters. +The name must be unqualified; that is, it must not include the package name. +If C is a stash element, it is the caller's responsibility to ensure that +the name passed to this function matches the name of the element. If it does +not match, perl's internal bookkeeping will get out of sync. C is identical to C, but takes a NUL-terminated string for the name instead of separate char * and length parameters. -In C, the name is given by C. +In C, C<*name> is an SV, and the name is the PV extracted from +that using C>. All but C take a C parameter. Set C to include C if C is a UTF-8 string. In C, if C