File Coverage

blib/lib/Perl/APIReference/V5_014_000.pm
Criterion Covered Total %
statement 15 15 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod 1 1 100.0
total 20 20 100.0


line stmt bran cond sub pod time code
1             package Perl::APIReference::V5_014_000;
2 1     1   9 use strict;
  1         2  
  1         53  
3 1     1   5 use warnings;
  1         1  
  1         39  
4 1     1   5 use parent 'Perl::APIReference';
  1         2  
  1         6  
5              
6             sub new {
7 6     6 1 11 my $class = shift;
8 6         8 my $VAR1;
9              
10 6         7 do{$VAR1 = {'newBINOP' => {'text' => 'Constructs, checks, and returns an op of any binary type. I
  6         11101  
11             is the opcode. I gives the eight bits of C, except
12             that C will be set automatically, and, shifted up eight bits,
13             the eight bits of C, except that the bit with value 1 or
14             2 is automatically set as required. I and I supply up to
15             two ops to be the direct children of the binary op; they are consumed
16             by this function and become part of the constructed op tree.
17              
18             OP * newBINOP(I32 type, I32 flags, OP *first, OP *last)','name' => 'newBINOP'},'strGE' => {'text' => 'Test two strings to see if the first, C, is greater than or equal to
19             the second, C. Returns true or false.
20              
21             bool strGE(char* s1, char* s2)','name' => 'strGE'},'SvPV' => {'text' => 'Returns a pointer to the string in the SV, or a stringified form of
22             the SV if the SV does not contain a string. The SV may cache the
23             stringified version becoming C. Handles \'get\' magic. See also
24             C for a version which guarantees to evaluate sv only once.
25              
26             char* SvPV(SV* sv, STRLEN len)','name' => 'SvPV'},'sv_vsetpvf_mg' => {'text' => 'Like C, but also handles \'set\' magic.
27              
28             Usually used via its frontend C.
29              
30             void sv_vsetpvf_mg(SV *const sv, const char *const pat, va_list *const args)','name' => 'sv_vsetpvf_mg'},'SvPVutf8' => {'text' => 'Like C, but converts sv to utf8 first if necessary.
31              
32             char* SvPVutf8(SV* sv, STRLEN len)','name' => 'SvPVutf8'},'sortsv_flags' => {'text' => 'Sort an array, with various options.
33              
34             void sortsv_flags(SV** array, size_t num_elts, SVCOMPARE_t cmp, U32 flags)','name' => 'sortsv_flags'},'vwarn' => {'text' => 'This is an XS interface to Perl\'s C function.
35              
36             C and C are a sprintf-style format pattern and encapsulated
37             argument list. These are used to generate a string message. If the
38             message does not end with a newline, then it will be extended with
39             some indication of the current location in the code, as described for
40             L.
41              
42             The error message or object will by default be written to standard error,
43             but this is subject to modification by a C<$SIG{__WARN__}> handler.
44              
45             Unlike with L, C is not permitted to be null.
46              
47             void vwarn(const char *pat, va_list *args)','name' => 'vwarn'},'scan_oct' => {'text' => 'For backwards compatibility. Use C instead.
48              
49             NV scan_oct(const char* start, STRLEN len, STRLEN* retlen)','name' => 'scan_oct'},'my_strlcat' => {'text' => '','name' => 'my_strlcat'},'av_arylen_p' => {'text' => '','name' => 'av_arylen_p'},'gv_add_by_type' => {'text' => '','name' => 'gv_add_by_type'},'newGVOP' => {'text' => 'Constructs, checks, and returns an op of any type that involves an
50             embedded reference to a GV. I is the opcode. I gives the
51             eight bits of C. I identifies the GV that the op should
52             reference; calling this function does not transfer ownership of any
53             reference to it.
54              
55             OP * newGVOP(I32 type, I32 flags, GV *gv)','name' => 'newGVOP'},'XopDISABLE' => {'text' => 'Temporarily disable a member of the XOP, by clearing the appropriate flag.
56              
57             void XopDISABLE(XOP *xop, which)','name' => 'XopDISABLE'},'is_uni_ascii' => {'text' => '','name' => 'is_uni_ascii'},'find_runcv' => {'text' => 'Locate the CV corresponding to the currently executing sub or eval.
58             If db_seqp is non_null, skip CVs that are in the DB package and populate
59             *db_seqp with the cop sequence number at the point that the DB:: code was
60             entered. (allows debuggers to eval in the scope of the breakpoint rather
61             than in the scope of the debugger itself).
62              
63             CV* find_runcv(U32 *db_seqp)','name' => 'find_runcv'},'utf8n_to_uvuni' => {'text' => 'Bottom level UTF-8 decode routine.
64             Returns the code point value of the first character in the string C
65             which is assumed to be in UTF-8 (or UTF-EBCDIC) encoding and no longer than
66             C bytes; C will be set to the length, in bytes, of that
67             character.
68              
69             The value of C determines the behavior when C does not point to a
70             well-formed UTF-8 character. If C is 0, when a malformation is found,
71             C is set to the expected length of the UTF-8 character in bytes, zero
72             is returned, and if UTF-8 warnings haven\'t been lexically disabled, a warning
73             is raised.
74              
75             Various ALLOW flags can be set in C to allow (and not warn on)
76             individual types of malformations, such as the sequence being overlong (that
77             is, when there is a shorter sequence that can express the same code point;
78             overlong sequences are expressly forbidden in the UTF-8 standard due to
79             potential security issues). Another malformation example is the first byte of
80             a character not being a legal first byte. See F for the list of such
81             flags. Of course, the value returned by this function under such conditions is
82             not reliable.
83              
84             The UTF8_CHECK_ONLY flag overrides the behavior when a non-allowed (by other
85             flags) malformation is found. If this flag is set, the routine assumes that
86             the caller will raise a warning, and this function will silently just set
87             C to C<-1> and return zero.
88              
89             Certain code points are considered problematic. These are Unicode surrogates,
90             Unicode non-characters, and code points above the Unicode maximum of 0x10FFF.
91             By default these are considered regular code points, but certain situations
92             warrant special handling for them. if C contains
93             UTF8_DISALLOW_ILLEGAL_INTERCHANGE, all three classes are treated as
94             malformations and handled as such. The flags UTF8_DISALLOW_SURROGATE,
95             UTF8_DISALLOW_NONCHAR, and UTF8_DISALLOW_SUPER (meaning above the legal Unicode
96             maximum) can be set to disallow these categories individually.
97              
98             The flags UTF8_WARN_ILLEGAL_INTERCHANGE, UTF8_WARN_SURROGATE,
99             UTF8_WARN_NONCHAR, and UTF8_WARN_SUPER will cause warning messages to be raised
100             for their respective categories, but otherwise the code points are considered
101             valid (not malformations). To get a category to both be treated as a
102             malformation and raise a warning, specify both the WARN and DISALLOW flags.
103             (But note that warnings are not raised if lexically disabled nor if
104             UTF8_CHECK_ONLY is also specified.)
105              
106             Very large code points (above 0x7FFF_FFFF) are considered more problematic than
107             the others that are above the Unicode legal maximum. There are several
108             reasons, one of which is that the original UTF-8 specification never went above
109             this number (the current 0x10FFF limit was imposed later). The UTF-8 encoding
110             on ASCII platforms for these large code point begins with a byte containing
111             0xFE or 0xFF. The UTF8_DISALLOW_FE_FF flag will cause them to be treated as
112             malformations, while allowing smaller above-Unicode code points. (Of course
113             UTF8_DISALLOW_SUPER will treat all above-Unicode code points, including these,
114             as malformations.) Similarly, UTF8_WARN_FE_FF acts just like the other WARN
115             flags, but applies just to these code points.
116              
117             All other code points corresponding to Unicode characters, including private
118             use and those yet to be assigned, are never considered malformed and never
119             warn.
120              
121             Most code should use utf8_to_uvchr() rather than call this directly.
122              
123             UV utf8n_to_uvuni(const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)','name' => 'utf8n_to_uvuni'},'newSVpvn_utf8' => {'text' => 'Creates a new SV and copies a string into it. If utf8 is true, calls
124             C on the new SV. Implemented as a wrapper around C.
125              
126             SV* newSVpvn_utf8(NULLOK const char* s, STRLEN len, U32 utf8)','name' => 'newSVpvn_utf8'},'dMARK' => {'text' => 'Declare a stack marker variable, C, for the XSUB. See C and
127             C.
128              
129             dMARK;','name' => 'dMARK'},'pregcomp' => {'text' => '','name' => 'pregcomp'},'my_cxt_index' => {'text' => '','name' => 'my_cxt_index'},'lex_discard_to' => {'text' => 'Discards the first part of the Llinestr> buffer,
130             up to I. The remaining content of the buffer will be moved, and
131             all pointers into the buffer updated appropriately. I must not
132             be later in the buffer than the position of Lbufptr>:
133             it is not permitted to discard text that has yet to be lexed.
134              
135             Normally it is not necessarily to do this directly, because it suffices to
136             use the implicit discarding behaviour of L and things
137             based on it. However, if a token stretches across multiple lines,
138             and the lexing code has kept multiple lines of text in the buffer for
139             that purpose, then after completion of the token it would be wise to
140             explicitly discard the now-unneeded earlier lines, to avoid future
141             multi-line tokens growing the buffer without bound.
142              
143             NOTE: this function is experimental and may change or be
144             removed without notice.
145              
146             void lex_discard_to(char *ptr)','name' => 'lex_discard_to'},'markstack_grow' => {'text' => '','name' => 'markstack_grow'},'cv_get_call_checker' => {'text' => 'Retrieves the function that will be used to fix up a call to I.
147             Specifically, the function is applied to an C op tree for a
148             subroutine call, not marked with C<&>, where the callee can be identified
149             at compile time as I.
150              
151             The C-level function pointer is returned in I<*ckfun_p>, and an SV
152             argument for it is returned in I<*ckobj_p>. The function is intended
153             to be called in this manner:
154              
155             entersubop = (*ckfun_p)(aTHX_ entersubop, namegv, (*ckobj_p));
156              
157             In this call, I is a pointer to the C op,
158             which may be replaced by the check function, and I is a GV
159             supplying the name that should be used by the check function to refer
160             to the callee of the C op if it needs to emit any diagnostics.
161             It is permitted to apply the check function in non-standard situations,
162             such as to a call to a different subroutine or to a method call.
163              
164             By default, the function is
165             L,
166             and the SV parameter is I itself. This implements standard
167             prototype processing. It can be changed, for a particular subroutine,
168             by L.
169              
170             void cv_get_call_checker(CV *cv, Perl_call_checker *ckfun_p, SV **ckobj_p)','name' => 'cv_get_call_checker'},'mXPUSHp' => {'text' => 'Push a string onto the stack, extending the stack if necessary. The C
171             indicates the length of the string. Does not use C. See also C,
172             C and C.
173              
174             void mXPUSHp(char* str, STRLEN len)','name' => 'mXPUSHp'},'lex_stuff_sv' => {'text' => 'Insert characters into the lexer buffer (Llinestr>),
175             immediately after the current lexing point (Lbufptr>),
176             reallocating the buffer if necessary. This means that lexing code that
177             runs later will see the characters as if they had appeared in the input.
178             It is not recommended to do this as part of normal parsing, and most
179             uses of this facility run the risk of the inserted characters being
180             interpreted in an unintended manner.
181              
182             The string to be inserted is the string value of I. The characters
183             are recoded for the lexer buffer, according to how the buffer is currently
184             being interpreted (L). If a string to be inserted is
185             not already a Perl scalar, the L function avoids the
186             need to construct a scalar.
187              
188             NOTE: this function is experimental and may change or be
189             removed without notice.
190              
191             void lex_stuff_sv(SV *sv, U32 flags)','name' => 'lex_stuff_sv'},'ibcmp_utf8' => {'text' => 'This is a synonym for (! foldEQ_utf8())
192              
193             I32 ibcmp_utf8(const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2)','name' => 'ibcmp_utf8'},'CvSTASH' => {'text' => 'Returns the stash of the CV.
194              
195             HV* CvSTASH(CV* cv)','name' => 'CvSTASH'},'gv_const_sv' => {'text' => 'If C is a typeglob whose subroutine entry is a constant sub eligible for
196             inlining, or C is a placeholder reference that would be promoted to such
197             a typeglob, then returns the value returned by the sub. Otherwise, returns
198             NULL.
199              
200             SV* gv_const_sv(GV* gv)','name' => 'gv_const_sv'},'sv_replace' => {'text' => 'Make the first argument a copy of the second, then delete the original.
201             The target SV physically takes over ownership of the body of the source SV
202             and inherits its flags; however, the target keeps any magic it owns,
203             and any magic in the source is discarded.
204             Note that this is a rather specialist SV copying operation; most of the
205             time you\'ll want to use C or one of its many macro front-ends.
206              
207             void sv_replace(SV *const sv, SV *const nsv)','name' => 'sv_replace'},'utf8n_to_uvchr' => {'text' => 'Returns the native character value of the first character in the string
208             C
209             which is assumed to be in UTF-8 encoding; C will be set to the
210             length, in bytes, of that character.
211              
212             length and flags are the same as utf8n_to_uvuni().
213              
214             UV utf8n_to_uvchr(const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)','name' => 'utf8n_to_uvchr'},'G_ARRAY' => {'text' => 'Used to indicate list context. See C, C and
215             L.','name' => 'G_ARRAY'},'sv_2iv' => {'text' => '','name' => 'sv_2iv'},'ck_warner_d' => {'text' => '','name' => 'ck_warner_d'},'XS_VERSION_BOOTCHECK' => {'text' => 'Macro to verify that a PM module\'s $VERSION variable matches the XS
216             module\'s C variable. This is usually handled automatically by
217             C. See L.
218              
219             XS_VERSION_BOOTCHECK;','name' => 'XS_VERSION_BOOTCHECK'},'mXPUSHn' => {'text' => 'Push a double onto the stack, extending the stack if necessary.
220             Does not use C. See also C, C and C.
221              
222             void mXPUSHn(NV nv)','name' => 'mXPUSHn'},'SvSETMAGIC' => {'text' => 'Invokes C on an SV if it has \'set\' magic. This macro evaluates its
223             argument more than once.
224              
225             void SvSETMAGIC(SV* sv)','name' => 'SvSETMAGIC'},'G_EVAL' => {'text' => 'Used to force a Perl C wrapper around a callback. See
226             L.','name' => 'G_EVAL'},'is_utf8_punct' => {'text' => '','name' => 'is_utf8_punct'},'sv_catsv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
227              
228             void sv_catsv_mg(SV *dsv, SV *ssv)','name' => 'sv_catsv_mg'},'call_argv' => {'text' => 'Performs a callback to the specified Perl sub. See L.
229              
230             NOTE: the perl_ form of this function is deprecated.
231              
232             I32 call_argv(const char* sub_name, I32 flags, char** argv)','name' => 'call_argv'},'save_freeop' => {'text' => '','name' => 'save_freeop'},'SvPV_nolen' => {'text' => 'Returns a pointer to the string in the SV, or a stringified form of
233             the SV if the SV does not contain a string. The SV may cache the
234             stringified form becoming C. Handles \'get\' magic.
235              
236             char* SvPV_nolen(SV* sv)','name' => 'SvPV_nolen'},'perl_clone' => {'text' => 'Create and return a new interpreter by cloning the current one.
237              
238             perl_clone takes these flags as parameters:
239              
240             CLONEf_COPY_STACKS - is used to, well, copy the stacks also,
241             without it we only clone the data and zero the stacks,
242             with it we copy the stacks and the new perl interpreter is
243             ready to run at the exact same point as the previous one.
244             The pseudo-fork code uses COPY_STACKS while the
245             threads->create doesn\'t.
246              
247             CLONEf_KEEP_PTR_TABLE
248             perl_clone keeps a ptr_table with the pointer of the old
249             variable as a key and the new variable as a value,
250             this allows it to check if something has been cloned and not
251             clone it again but rather just use the value and increase the
252             refcount. If KEEP_PTR_TABLE is not set then perl_clone will kill
253             the ptr_table using the function
254             C,
255             reason to keep it around is if you want to dup some of your own
256             variable who are outside the graph perl scans, example of this
257             code is in threads.xs create
258              
259             CLONEf_CLONE_HOST
260             This is a win32 thing, it is ignored on unix, it tells perls
261             win32host code (which is c++) to clone itself, this is needed on
262             win32 if you want to run two threads at the same time,
263             if you just want to do some stuff in a separate perl interpreter
264             and then throw it away and return to the original one,
265             you don\'t need to do anything.
266              
267             PerlInterpreter* perl_clone(PerlInterpreter *proto_perl, UV flags)','name' => 'perl_clone'},'save_alloc' => {'text' => '','name' => 'save_alloc'},'SvSetSV' => {'text' => 'Calls C if dsv is not the same as ssv. May evaluate arguments
268             more than once.
269              
270             void SvSetSV(SV* dsb, SV* ssv)','name' => 'SvSetSV'},'rninstr' => {'text' => '','name' => 'rninstr'},'hv_fetchs' => {'text' => 'Like C, but takes a literal string instead of a string/length pair.
271              
272             SV** hv_fetchs(HV* tb, const char* key, I32 lval)','name' => 'hv_fetchs'},'strnNE' => {'text' => 'Test two strings to see if they are different. The C parameter
273             indicates the number of bytes to compare. Returns true or false. (A
274             wrapper for C).
275              
276             bool strnNE(char* s1, char* s2, STRLEN len)','name' => 'strnNE'},'cophh_store_pv' => {'text' => 'Like L, but takes a nul-terminated string instead of
277             a string/length pair.
278              
279             NOTE: this function is experimental and may change or be
280             removed without notice.
281              
282             COPHH * cophh_store_pv(const COPHH *cophh, const char *key, U32 hash, SV *value, U32 flags)','name' => 'cophh_store_pv'},'savepv' => {'text' => 'Perl\'s version of C. Returns a pointer to a newly allocated
283             string which is a duplicate of C. The size of the string is
284             determined by C. The memory allocated for the new string can
285             be freed with the C function.
286              
287             char* savepv(const char* pv)','name' => 'savepv'},'save_iv' => {'text' => '','name' => 'save_iv'},'HvNAME' => {'text' => 'Returns the package name of a stash, or NULL if C isn\'t a stash.
288             See C, C.
289              
290             char* HvNAME(HV* stash)','name' => 'HvNAME'},'sv_recode_to_utf8' => {'text' => 'The encoding is assumed to be an Encode object, on entry the PV
291             of the sv is assumed to be octets in that encoding, and the sv
292             will be converted into Unicode (and UTF-8).
293              
294             If the sv already is UTF-8 (or if it is not POK), or if the encoding
295             is not a reference, nothing is done to the sv. If the encoding is not
296             an C Encoding object, bad things will happen.
297             (See F and L).
298              
299             The PV of the sv is returned.
300              
301             char* sv_recode_to_utf8(SV* sv, SV *encoding)','name' => 'sv_recode_to_utf8'},'save_hptr' => {'text' => '','name' => 'save_hptr'},'runops_debug' => {'text' => '','name' => 'runops_debug'},'do_gvgv_dump' => {'text' => '','name' => 'do_gvgv_dump'},'PERL_SYS_INIT' => {'text' => 'Provides system-specific tune up of the C runtime environment necessary to
302             run Perl interpreters. This should be called only once, before creating
303             any Perl interpreters.
304              
305             void PERL_SYS_INIT(int argc, char** argv)','name' => 'PERL_SYS_INIT'},'vstringify' => {'text' => 'In order to maintain maximum compatibility with earlier versions
306             of Perl, this function will return either the floating point
307             notation or the multiple dotted notation, depending on whether
308             the original version contained 1 or more dots, respectively.
309              
310             The SV returned has a refcount of 1.
311              
312             SV* vstringify(SV *vs)','name' => 'vstringify'},'sv_catsv_flags' => {'text' => 'Concatenates the string from SV C onto the end of the string in
313             SV C. Modifies C but not C. If C has C
314             bit set, will C on the SVs if appropriate, else not. C
315             and C are implemented in terms of this function.
316              
317             void sv_catsv_flags(SV *const dsv, SV *const ssv, const I32 flags)','name' => 'sv_catsv_flags'},'is_uni_alpha' => {'text' => '','name' => 'is_uni_alpha'},'str_to_version' => {'text' => '','name' => 'str_to_version'},'sv_derived_from' => {'text' => 'Returns a boolean indicating whether the SV is derived from the specified class
318             I. To check derivation at the Perl level, call C as a
319             normal Perl method.
320              
321             bool sv_derived_from(SV* sv, const char *const name)','name' => 'sv_derived_from'},'SvIOK_on' => {'text' => 'Tells an SV that it is an integer.
322              
323             void SvIOK_on(SV* sv)','name' => 'SvIOK_on'},'sv_cmp_locale' => {'text' => 'Compares the strings in two SVs in a locale-aware manner. Is UTF-8 and
324             \'use bytes\' aware, handles get magic, and will coerce its args to strings
325             if necessary. See also C.
326              
327             I32 sv_cmp_locale(SV *const sv1, SV *const sv2)','name' => 'sv_cmp_locale'},'sv_catpvs' => {'text' => 'Like C, but takes a literal string instead of a string/length pair.
328              
329             void sv_catpvs(SV* sv, const char* s)','name' => 'sv_catpvs'},'set_numeric_standard' => {'text' => '','name' => 'set_numeric_standard'},'dSP' => {'text' => 'Declares a local copy of perl\'s stack pointer for the XSUB, available via
330             the C macro. See C.
331              
332             dSP;','name' => 'dSP'},'Nullsv' => {'text' => 'Null SV pointer. (No longer available when C is defined.)','name' => 'Nullsv'},'scan_vstring' => {'text' => '','name' => 'scan_vstring'},'ptr_table_new' => {'text' => '','name' => 'ptr_table_new'},'do_op_dump' => {'text' => '','name' => 'do_op_dump'},'foldEQ' => {'text' => 'Returns true if the leading len bytes of the strings s1 and s2 are the same
333             case-insensitively; false otherwise. Uppercase and lowercase ASCII range bytes
334             match themselves and their opposite case counterparts. Non-cased and non-ASCII
335             range bytes match only themselves.
336              
337             I32 foldEQ(const char* a, const char* b, I32 len)','name' => 'foldEQ'},'PerlIO_get_base' => {'text' => '','name' => 'PerlIO_get_base'},'SvPVX' => {'text' => 'Returns a pointer to the physical string in the SV. The SV must contain a
338             string.
339              
340             char* SvPVX(SV* sv)','name' => 'SvPVX'},'XPUSHi' => {'text' => 'Push an integer onto the stack, extending the stack if necessary. Handles
341             \'set\' magic. Uses C, so C or C should be called to
342             declare it. Do not call multiple C-oriented macros to return lists
343             from XSUB\'s - see C instead. See also C and C.
344              
345             void XPUSHi(IV iv)','name' => 'XPUSHi'},'is_utf8_perl_word' => {'text' => '','name' => 'is_utf8_perl_word'},'debop' => {'text' => '','name' => 'debop'},'ref' => {'text' => '','name' => 'ref'},'is_uni_print_lc' => {'text' => '','name' => 'is_uni_print_lc'},'SvOOK_offset' => {'text' => 'Reads into I the offset from SvPVX back to the true start of the
346             allocated buffer, which will be non-zero if C has been used to
347             efficiently remove characters from start of the buffer. Implemented as a
348             macro, which takes the address of I, which must be of type C.
349             Evaluates I more than once. Sets I to 0 if C is false.
350              
351             void SvOOK_offset(NN SV*sv, STRLEN len)','name' => 'SvOOK_offset'},'save_list' => {'text' => '','name' => 'save_list'},'is_uni_idfirst_lc' => {'text' => '','name' => 'is_uni_idfirst_lc'},'SvTAINTED_on' => {'text' => 'Marks an SV as tainted if tainting is enabled.
352              
353             void SvTAINTED_on(SV* sv)','name' => 'SvTAINTED_on'},'newGIVENOP' => {'text' => 'Constructs, checks, and returns an op tree expressing a C block.
354             I supplies the expression that will be locally assigned to a lexical
355             variable, and I supplies the body of the C construct; they
356             are consumed by this function and become part of the constructed op tree.
357             I is the pad offset of the scalar lexical variable that will
358             be affected.
359              
360             OP * newGIVENOP(OP *cond, OP *block, PADOFFSET defsv_off)','name' => 'newGIVENOP'},'sv_nolocking' => {'text' => 'Dummy routine which "locks" an SV when there is no locking module present.
361             Exists to avoid test for a NULL function pointer and because it could
362             potentially warn under some level of strict-ness.
363              
364             "Superseded" by sv_nosharing().
365              
366             void sv_nolocking(SV *sv)','name' => 'sv_nolocking'},'parse_listexpr' => {'text' => 'Parse a Perl list expression. This may contain operators of precedence
367             down to the comma operator. The expression must be followed (and thus
368             terminated) either by a low-precedence logic operator such as C or by
369             something that would normally terminate an expression such as semicolon.
370             If I includes C then the expression is optional,
371             otherwise it is mandatory. It is up to the caller to ensure that the
372             dynamic parser state (L et al) is correctly set to reflect
373             the source of the code to be parsed and the lexical context for the
374             expression.
375              
376             The op tree representing the expression is returned. If an optional
377             expression is absent, a null pointer is returned, otherwise the pointer
378             will be non-null.
379              
380             If an error occurs in parsing or compilation, in most cases a valid op
381             tree is returned anyway. The error is reflected in the parser state,
382             normally resulting in a single exception at the top level of parsing
383             which covers all the compilation errors that occurred. Some compilation
384             errors, however, will throw an exception immediately.
385              
386             NOTE: this function is experimental and may change or be
387             removed without notice.
388              
389             OP * parse_listexpr(U32 flags)','name' => 'parse_listexpr'},'ibcmp' => {'text' => 'This is a synonym for (! foldEQ())
390              
391             I32 ibcmp(const char* a, const char* b, I32 len)','name' => 'ibcmp'},'isWORDCHAR' => {'text' => 'Returns a boolean indicating whether the specified character is a
392             character that is any of: alphabetic, numeric, or an underscore. This is the
393             same as what C<\\w> matches in a regular expression.
394             C is a synonym provided for backward compatibility. Note that it
395             does not have the standard C language meaning of alphanumeric, since it matches
396             an underscore and the standard meaning does not.
397             See the L for an explanation of variants
398             C and C.
399              
400             bool isWORDCHAR(char ch)','name' => 'isWORDCHAR'},'Slab_Alloc' => {'text' => '','name' => 'Slab_Alloc'},'strLT' => {'text' => 'Test two strings to see if the first, C, is less than the second,
401             C. Returns true or false.
402              
403             bool strLT(char* s1, char* s2)','name' => 'strLT'},'save_pushptr' => {'text' => '','name' => 'save_pushptr'},'save_clearsv' => {'text' => '','name' => 'save_clearsv'},'Slab_Free' => {'text' => '','name' => 'Slab_Free'},'av_shift' => {'text' => 'Shifts an SV off the beginning of the array. Returns C<&PL_sv_undef> if the
404             array is empty.
405              
406             SV* av_shift(AV *av)','name' => 'av_shift'},'sv_setpvf_nocontext' => {'text' => '','name' => 'sv_setpvf_nocontext'},'sv_nounlocking' => {'text' => 'Dummy routine which "unlocks" an SV when there is no locking module present.
407             Exists to avoid test for a NULL function pointer and because it could
408             potentially warn under some level of strict-ness.
409              
410             "Superseded" by sv_nosharing().
411              
412             void sv_nounlocking(SV *sv)','name' => 'sv_nounlocking'},'perl_clone_using' => {'text' => '','name' => 'perl_clone_using'},'PerlIO_context_layers' => {'text' => '','name' => 'PerlIO_context_layers'},'lex_unstuff' => {'text' => 'Discards text about to be lexed, from Lbufptr> up to
413             I. Text following I will be moved, and the buffer shortened.
414             This hides the discarded text from any lexing code that runs later,
415             as if the text had never appeared.
416              
417             This is not the normal way to consume lexed text. For that, use
418             L.
419              
420             NOTE: this function is experimental and may change or be
421             removed without notice.
422              
423             void lex_unstuff(char *ptr)','name' => 'lex_unstuff'},'newSVpvf_nocontext' => {'text' => '','name' => 'newSVpvf_nocontext'},'SvUV_set' => {'text' => 'Set the value of the UV pointer in sv to val. See C.
424              
425             void SvUV_set(SV* sv, UV val)','name' => 'SvUV_set'},'rvpv_dup' => {'text' => '','name' => 'rvpv_dup'},'filter_read' => {'text' => '','name' => 'filter_read'},'ckwarn' => {'text' => '','name' => 'ckwarn'},'warner' => {'text' => '','name' => 'warner'},'savesharedsvpv' => {'text' => 'A version of C which allocates the duplicate string in
426             memory which is shared between threads.
427              
428             char* savesharedsvpv(SV *sv)','name' => 'savesharedsvpv'},'CopyD' => {'text' => 'Like C but returns dest. Useful for encouraging compilers to tail-call
429             optimise.
430              
431             void * CopyD(void* src, void* dest, int nitems, type)','name' => 'CopyD'},'sv_setiv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
432              
433             void sv_setiv_mg(SV *const sv, const IV i)','name' => 'sv_setiv_mg'},'newFOROP' => {'text' => 'Constructs, checks, and returns an op tree expressing a C
434             loop (iteration through a list of values). This is a heavyweight loop,
435             with structure that allows exiting the loop by C and suchlike.
436              
437             I optionally supplies the variable that will be aliased to each
438             item in turn; if null, it defaults to C<$_> (either lexical or global).
439             I supplies the list of values to iterate over. I supplies
440             the main body of the loop, and I optionally supplies a C
441             block that operates as a second half of the body. All of these optree
442             inputs are consumed by this function and become part of the constructed
443             op tree.
444              
445             I gives the eight bits of C for the C
446             op and, shifted up eight bits, the eight bits of C for
447             the C op, except that (in both cases) some bits will be set
448             automatically.
449              
450             OP * newFOROP(I32 flags, OP *sv, OP *expr, OP *block, OP *cont)','name' => 'newFOROP'},'HvENAME' => {'text' => 'Returns the effective name of a stash, or NULL if there is none. The
451             effective name represents a location in the symbol table where this stash
452             resides. It is updated automatically when packages are aliased or deleted.
453             A stash that is no longer in the symbol table has no effective name. This
454             name is preferable to C for use in MRO linearisations and isa
455             caches.
456              
457             char* HvENAME(HV* stash)','name' => 'HvENAME'},'save_generic_svref' => {'text' => '','name' => 'save_generic_svref'},'savesharedpvn' => {'text' => 'A version of C which allocates the duplicate string in memory
458             which is shared between threads. (With the specific difference that a NULL
459             pointer is not acceptable)
460              
461             char* savesharedpvn(const char *const pv, const STRLEN len)','name' => 'savesharedpvn'},'SvCUR_set' => {'text' => 'Set the current length of the string which is in the SV. See C
462             and C.
463              
464             void SvCUR_set(SV* sv, STRLEN len)','name' => 'SvCUR_set'},'sv_2pv' => {'text' => '','name' => 'sv_2pv'},'SvNOK' => {'text' => 'Returns a U32 value indicating whether the SV contains a double.
465              
466             U32 SvNOK(SV* sv)','name' => 'SvNOK'},'mPUSHn' => {'text' => 'Push a double onto the stack. The stack must have room for this element.
467             Does not use C. See also C, C and C.
468              
469             void mPUSHn(NV nv)','name' => 'mPUSHn'},'is_uni_digit_lc' => {'text' => '','name' => 'is_uni_digit_lc'},'sv_reset' => {'text' => 'Underlying implementation for the C Perl function.
470             Note that the perl-level function is vaguely deprecated.
471              
472             void sv_reset(const char* s, HV *const stash)','name' => 'sv_reset'},'cophh_delete_pv' => {'text' => 'Like L, but takes a nul-terminated string instead of
473             a string/length pair.
474              
475             NOTE: this function is experimental and may change or be
476             removed without notice.
477              
478             COPHH * cophh_delete_pv(const COPHH *cophh, const char *key, U32 hash, U32 flags)','name' => 'cophh_delete_pv'},'sv_2pv_flags' => {'text' => 'Returns a pointer to the string value of an SV, and sets *lp to its length.
479             If flags includes SV_GMAGIC, does an mg_get() first. Coerces sv to a string
480             if necessary.
481             Normally invoked via the C macro. C and C
482             usually end up here too.
483              
484             char* sv_2pv_flags(SV *const sv, STRLEN *const lp, const I32 flags)','name' => 'sv_2pv_flags'},'push_scope' => {'text' => '','name' => 'push_scope'},'SvNVx' => {'text' => 'Coerces the given SV to a double and returns it. Guarantees to evaluate
485             C only once. Only use this if C is an expression with side effects,
486             otherwise use the more efficient C.
487              
488             NV SvNVx(SV* sv)','name' => 'SvNVx'},'setdefout' => {'text' => 'Sets PL_defoutgv, the default file handle for output, to the passed in
489             typeglob. As PL_defoutgv "owns" a reference on its typeglob, the reference
490             count of the passed in typeglob is increased by one, and the reference count
491             of the typeglob that PL_defoutgv points to is decreased by one.
492              
493             void setdefout(GV* gv)','name' => 'setdefout'},'form_nocontext' => {'text' => '','name' => 'form_nocontext'},'hv_store' => {'text' => 'Stores an SV in a hash. The hash key is specified as C and C is
494             the length of the key. The C parameter is the precomputed hash
495             value; if it is zero then Perl will compute it. The return value will be
496             NULL if the operation failed or if the value did not need to be actually
497             stored within the hash (as in the case of tied hashes). Otherwise it can
498             be dereferenced to get the original C. Note that the caller is
499             responsible for suitably incrementing the reference count of C before
500             the call, and decrementing it if the function returned NULL. Effectively
501             a successful hv_store takes ownership of one reference to C. This is
502             usually what you want; a newly created SV has a reference count of one, so
503             if all your code does is create SVs then store them in a hash, hv_store
504             will own the only reference to the new SV, and your code doesn\'t need to do
505             anything further to tidy up. hv_store is not implemented as a call to
506             hv_store_ent, and does not create a temporary SV for the key, so if your
507             key data is not already in SV form then use hv_store in preference to
508             hv_store_ent.
509              
510             See L for more
511             information on how to use this function on tied hashes.
512              
513             SV** hv_store(HV *hv, const char *key, I32 klen, SV *val, U32 hash)','name' => 'hv_store'},'sys_intern_dup' => {'text' => '','name' => 'sys_intern_dup'},'do_binmode' => {'text' => '','name' => 'do_binmode'},'get_op_names' => {'text' => '','name' => 'get_op_names'},'cop_hints_fetch_sv' => {'text' => 'Like L, but takes a Perl scalar instead of a
514             string/length pair.
515              
516             SV * cop_hints_fetch_sv(const COP *cop, SV *key, U32 hash, U32 flags)','name' => 'cop_hints_fetch_sv'},'ck_entersub_args_proto_or_list' => {'text' => 'Performs the fixup of the arguments part of an C op tree either
517             based on a subroutine prototype or using default list-context processing.
518             This is the standard treatment used on a subroutine call, not marked
519             with C<&>, where the callee can be identified at compile time.
520              
521             I supplies the subroutine prototype to be applied to the call,
522             or indicates that there is no prototype. It may be a normal scalar,
523             in which case if it is defined then the string value will be used
524             as a prototype, and if it is undefined then there is no prototype.
525             Alternatively, for convenience, it may be a subroutine object (a C
526             that has been cast to C), of which the prototype will be used if it
527             has one. The prototype (or lack thereof) supplied, in whichever form,
528             does not need to match the actual callee referenced by the op tree.
529              
530             If the argument ops disagree with the prototype, for example by having
531             an unacceptable number of arguments, a valid op tree is returned anyway.
532             The error is reflected in the parser state, normally resulting in a single
533             exception at the top level of parsing which covers all the compilation
534             errors that occurred. In the error message, the callee is referred to
535             by the name defined by the I parameter.
536              
537             OP * ck_entersub_args_proto_or_list(OP *entersubop, GV *namegv, SV *protosv)','name' => 'ck_entersub_args_proto_or_list'},'op_null' => {'text' => '','name' => 'op_null'},'hv_fetch_ent' => {'text' => 'Returns the hash entry which corresponds to the specified key in the hash.
538             C must be a valid precomputed hash number for the given C, or 0
539             if you want the function to compute it. IF C is set then the fetch
540             will be part of a store. Make sure the return value is non-null before
541             accessing it. The return value when C is a tied hash is a pointer to a
542             static location, so be sure to make a copy of the structure if you need to
543             store it somewhere.
544              
545             See L for more
546             information on how to use this function on tied hashes.
547              
548             HE* hv_fetch_ent(HV *hv, SV *keysv, I32 lval, U32 hash)','name' => 'hv_fetch_ent'},'gv_fetchpvn_flags' => {'text' => '','name' => 'gv_fetchpvn_flags'},'ENTER' => {'text' => 'Opening bracket on a callback. See C and L.
549              
550             ENTER;','name' => 'ENTER'},'PL_sv_no' => {'text' => 'This is the C SV. See C. Always refer to this as
551             C<&PL_sv_no>.
552              
553             SV PL_sv_no','name' => 'PL_sv_no'},'Newx' => {'text' => 'The XSUB-writer\'s interface to the C C function.
554              
555             In 5.9.3, Newx() and friends replace the older New() API, and drops
556             the first parameter, I, a debug aid which allowed callers to identify
557             themselves. This aid has been superseded by a new build option,
558             PERL_MEM_LOG (see L). The older API is still
559             there for use in XS modules supporting older perls.
560              
561             void Newx(void* ptr, int nitems, type)','name' => 'Newx'},'newFORM' => {'text' => '','name' => 'newFORM'},'PUSHs' => {'text' => 'Push an SV onto the stack. The stack must have room for this element.
562             Does not handle \'set\' magic. Does not use C. See also C,
563             C and C.
564              
565             void PUSHs(SV* sv)','name' => 'PUSHs'},'to_uni_upper_lc' => {'text' => '','name' => 'to_uni_upper_lc'},'sv_setuv' => {'text' => 'Copies an unsigned integer into the given SV, upgrading first if necessary.
566             Does not handle \'set\' magic. See also C.
567              
568             void sv_setuv(SV *const sv, const UV num)','name' => 'sv_setuv'},'SvUPGRADE' => {'text' => 'Used to upgrade an SV to a more complex form. Uses C to
569             perform the upgrade if necessary. See C.
570              
571             void SvUPGRADE(SV* sv, svtype type)','name' => 'SvUPGRADE'},'is_uni_upper_lc' => {'text' => '','name' => 'is_uni_upper_lc'},'do_aspawn' => {'text' => '','name' => 'do_aspawn'},'sv_pvn' => {'text' => 'A private implementation of the C macro for compilers which can\'t
572             cope with complex macro expressions. Always use the macro instead.
573              
574             char* sv_pvn(SV *sv, STRLEN *lp)','name' => 'sv_pvn'},'do_openn' => {'text' => '','name' => 'do_openn'},'mro_get_from_name' => {'text' => '','name' => 'mro_get_from_name'},'sv_setref_iv' => {'text' => 'Copies an integer into a new SV, optionally blessing the SV. The C
575             argument will be upgraded to an RV. That RV will be modified to point to
576             the new SV. The C argument indicates the package for the
577             blessing. Set C to C to avoid the blessing. The new SV
578             will have a reference count of 1, and the RV will be returned.
579              
580             SV* sv_setref_iv(SV *const rv, const char *const classname, const IV iv)','name' => 'sv_setref_iv'},'sv_chop' => {'text' => 'Efficient removal of characters from the beginning of the string buffer.
581             SvPOK(sv) must be true and the C must be a pointer to somewhere inside
582             the string buffer. The C becomes the first character of the adjusted
583             string. Uses the "OOK hack".
584             Beware: after this function returns, C and SvPVX_const(sv) may no longer
585             refer to the same chunk of data.
586              
587             void sv_chop(SV *const sv, const char *const ptr)','name' => 'sv_chop'},'sv_backoff' => {'text' => 'Remove any string offset. You should normally use the C macro
588             wrapper instead.
589              
590             int sv_backoff(SV *const sv)','name' => 'sv_backoff'},'reentrant_retry' => {'text' => '','name' => 'reentrant_retry'},'XPUSHu' => {'text' => 'Push an unsigned integer onto the stack, extending the stack if necessary.
591             Handles \'set\' magic. Uses C, so C or C should be
592             called to declare it. Do not call multiple C-oriented macros to
593             return lists from XSUB\'s - see C instead. See also C and
594             C.
595              
596             void XPUSHu(UV uv)','name' => 'XPUSHu'},'sv_pvn_nomg' => {'text' => '','name' => 'sv_pvn_nomg'},'is_uni_space_lc' => {'text' => '','name' => 'is_uni_space_lc'},'stack_grow' => {'text' => '','name' => 'stack_grow'},'dump_mstats' => {'text' => '','name' => 'dump_mstats'},'newLOOPEX' => {'text' => 'Constructs, checks, and returns a loop-exiting op (such as C
597             or C). I is the opcode. I
598             determining the target of the op; it is consumed by this function and
599             become part of the constructed op tree.
600              
601             OP * newLOOPEX(I32 type, OP *label)','name' => 'newLOOPEX'},'save_shared_pvref' => {'text' => '','name' => 'save_shared_pvref'},'PL_na' => {'text' => 'A convenience variable which is typically used with C when one
602             doesn\'t care about the length of the string. It is usually more efficient
603             to either declare a local variable and use that instead or to use the
604             C macro.
605              
606             STRLEN PL_na','name' => 'PL_na'},'newSViv' => {'text' => 'Creates a new SV and copies an integer into it. The reference count for the
607             SV is set to 1.
608              
609             SV* newSViv(const IV i)','name' => 'newSViv'},'gv_name_set' => {'text' => '','name' => 'gv_name_set'},'sv_untaint' => {'text' => 'Untaint an SV. Use C instead.
610             void sv_untaint(SV *const sv)','name' => 'sv_untaint'},'Newxz' => {'text' => 'The XSUB-writer\'s interface to the C C function. The allocated
611             memory is zeroed with C. See also C.
612              
613             void Newxz(void* ptr, int nitems, type)','name' => 'Newxz'},'SVt_PVHV' => {'text' => 'Type flag for hashes. See C.','name' => 'SVt_PVHV'},'reentrant_init' => {'text' => '','name' => 'reentrant_init'},'save_pushptrptr' => {'text' => '','name' => 'save_pushptrptr'},'save_gp' => {'text' => '','name' => 'save_gp'},'parse_block' => {'text' => 'Parse a single complete Perl code block. This consists of an opening
614             brace, a sequence of statements, and a closing brace. The block
615             constitutes a lexical scope, so C variables and various compile-time
616             effects can be contained within it. It is up to the caller to ensure
617             that the dynamic parser state (L et al) is correctly set to
618             reflect the source of the code to be parsed and the lexical context for
619             the statement.
620              
621             The op tree representing the code block is returned. This is always a
622             real op, never a null pointer. It will normally be a C list,
623             including C or equivalent ops. No ops to construct any kind
624             of runtime scope are included by virtue of it being a block.
625              
626             If an error occurs in parsing or compilation, in most cases a valid op
627             tree (most likely null) is returned anyway. The error is reflected in
628             the parser state, normally resulting in a single exception at the top
629             level of parsing which covers all the compilation errors that occurred.
630             Some compilation errors, however, will throw an exception immediately.
631              
632             The I parameter is reserved for future use, and must always
633             be zero.
634              
635             NOTE: this function is experimental and may change or be
636             removed without notice.
637              
638             OP * parse_block(U32 flags)','name' => 'parse_block'},'SvRX' => {'text' => 'Convenience macro to get the REGEXP from a SV. This is approximately
639             equivalent to the following snippet:
640              
641             if (SvMAGICAL(sv))
642             mg_get(sv);
643             if (SvROK(sv))
644             sv = MUTABLE_SV(SvRV(sv));
645             if (SvTYPE(sv) == SVt_REGEXP)
646             return (REGEXP*) sv;
647              
648             NULL will be returned if a REGEXP* is not found.
649              
650             REGEXP * SvRX(SV *sv)','name' => 'SvRX'},'newASSIGNOP' => {'text' => 'Constructs, checks, and returns an assignment op. I and I
651             supply the parameters of the assignment; they are consumed by this
652             function and become part of the constructed op tree.
653              
654             If I is C, C, or C, then
655             a suitable conditional optree is constructed. If I is the opcode
656             of a binary operator, such as C, then an op is constructed that
657             performs the binary operation and assigns the result to the left argument.
658             Either way, if I is non-zero then I has no effect.
659              
660             If I is zero, then a plain scalar or list assignment is
661             constructed. Which type of assignment it is is automatically determined.
662             I gives the eight bits of C, except that C
663             will be set automatically, and, shifted up eight bits, the eight bits
664             of C, except that the bit with value 1 or 2 is automatically
665             set as required.
666              
667             OP * newASSIGNOP(I32 flags, OP *left, I32 optype, OP *right)','name' => 'newASSIGNOP'},'hv_undef' => {'text' => 'Undefines the hash.
668              
669             void hv_undef(HV *hv)','name' => 'hv_undef'},'SvSetMagicSV_nosteal' => {'text' => 'Like C, but does any set magic required afterwards.
670              
671             void SvSetMagicSV_nosteal(SV* dsv, SV* ssv)','name' => 'SvSetMagicSV_nosteal'},'clone_params_del' => {'text' => '','name' => 'clone_params_del'},'sv_isobject' => {'text' => 'Returns a boolean indicating whether the SV is an RV pointing to a blessed
672             object. If the SV is not an RV, or if the object is not blessed, then this
673             will return false.
674              
675             int sv_isobject(SV* sv)','name' => 'sv_isobject'},'cop_hints_fetch_pvn' => {'text' => 'Look up the hint entry in the cop I with the key specified by
676             I and I. If I has the C bit set,
677             the key octets are interpreted as UTF-8, otherwise they are interpreted
678             as Latin-1. I is a precomputed hash of the key string, or zero if
679             it has not been precomputed. Returns a mortal scalar copy of the value
680             associated with the key, or C<&PL_sv_placeholder> if there is no value
681             associated with the key.
682              
683             SV * cop_hints_fetch_pvn(const COP *cop, const char *keypv, STRLEN keylen, U32 hash, U32 flags)','name' => 'cop_hints_fetch_pvn'},'gv_efullname4' => {'text' => '','name' => 'gv_efullname4'},'SvIV' => {'text' => 'Coerces the given SV to an integer and returns it. See C for a
684             version which guarantees to evaluate sv only once.
685              
686             IV SvIV(SV* sv)','name' => 'SvIV'},'isASCII' => {'text' => 'Returns a boolean indicating whether the specified character is one of the 128
687             characters in the ASCII character set. On non-ASCII platforms, it is if this
688             character corresponds to an ASCII character. Variants C and
689             C are identical to C.
690              
691             bool isASCII(char ch)','name' => 'isASCII'},'PerlIO_eof' => {'text' => '','name' => 'PerlIO_eof'},'cop_hints_2hv' => {'text' => 'Generates and returns a standard Perl hash representing the full set of
692             hint entries in the cop I. I is currently unused and must
693             be zero.
694              
695             HV * cop_hints_2hv(const COP *cop, U32 flags)','name' => 'cop_hints_2hv'},'sv_collxfrm_flags' => {'text' => 'Add Collate Transform magic to an SV if it doesn\'t already have it. If the
696             flags contain SV_GMAGIC, it handles get-magic.
697              
698             Any scalar variable may carry PERL_MAGIC_collxfrm magic that contains the
699             scalar data of the variable, but transformed to such a format that a normal
700             memory comparison can be used to compare the data according to the locale
701             settings.
702              
703             char* sv_collxfrm_flags(SV *const sv, STRLEN *const nxp, I32 const flags)','name' => 'sv_collxfrm_flags'},'sv_setref_uv' => {'text' => 'Copies an unsigned integer into a new SV, optionally blessing the SV. The C
704             argument will be upgraded to an RV. That RV will be modified to point to
705             the new SV. The C argument indicates the package for the
706             blessing. Set C to C to avoid the blessing. The new SV
707             will have a reference count of 1, and the RV will be returned.
708              
709             SV* sv_setref_uv(SV *const rv, const char *const classname, const UV uv)','name' => 'sv_setref_uv'},'get_ppaddr' => {'text' => '','name' => 'get_ppaddr'},'ck_entersub_args_proto' => {'text' => 'Performs the fixup of the arguments part of an C op tree
710             based on a subroutine prototype. This makes various modifications to
711             the argument ops, from applying context up to inserting C ops,
712             and checking the number and syntactic types of arguments, as directed by
713             the prototype. This is the standard treatment used on a subroutine call,
714             not marked with C<&>, where the callee can be identified at compile time
715             and has a prototype.
716              
717             I supplies the subroutine prototype to be applied to the call.
718             It may be a normal defined scalar, of which the string value will be used.
719             Alternatively, for convenience, it may be a subroutine object (a C
720             that has been cast to C) which has a prototype. The prototype
721             supplied, in whichever form, does not need to match the actual callee
722             referenced by the op tree.
723              
724             If the argument ops disagree with the prototype, for example by having
725             an unacceptable number of arguments, a valid op tree is returned anyway.
726             The error is reflected in the parser state, normally resulting in a single
727             exception at the top level of parsing which covers all the compilation
728             errors that occurred. In the error message, the callee is referred to
729             by the name defined by the I parameter.
730              
731             OP * ck_entersub_args_proto(OP *entersubop, GV *namegv, SV *protosv)','name' => 'ck_entersub_args_proto'},'getcwd_sv' => {'text' => 'Fill the sv with current working directory
732              
733             int getcwd_sv(SV* sv)','name' => 'getcwd_sv'},'newSVpvs_share' => {'text' => 'Like C, but takes a literal string instead of a string/length
734             pair and omits the hash parameter.
735              
736             SV* newSVpvs_share(const char* s)','name' => 'newSVpvs_share'},'newSVpv' => {'text' => 'Creates a new SV and copies a string into it. The reference count for the
737             SV is set to 1. If C is zero, Perl will compute the length using
738             strlen(). For efficiency, consider using C instead.
739              
740             SV* newSVpv(const char *const s, const STRLEN len)','name' => 'newSVpv'},'sv_2pvbyte' => {'text' => 'Return a pointer to the byte-encoded representation of the SV, and set *lp
741             to its length. May cause the SV to be downgraded from UTF-8 as a
742             side-effect.
743              
744             Usually accessed via the C macro.
745              
746             char* sv_2pvbyte(SV *const sv, STRLEN *const lp)','name' => 'sv_2pvbyte'},'fbm_instr' => {'text' => 'Returns the location of the SV in the string delimited by C and
747             C. It returns C if the string can\'t be found. The C
748             does not have to be fbm_compiled, but the search will not be as fast
749             then.
750              
751             char* fbm_instr(unsigned char* big, unsigned char* bigend, SV* littlestr, U32 flags)','name' => 'fbm_instr'},'XPUSHn' => {'text' => 'Push a double onto the stack, extending the stack if necessary. Handles
752             \'set\' magic. Uses C, so C or C should be called to
753             declare it. Do not call multiple C-oriented macros to return lists
754             from XSUB\'s - see C instead. See also C and C.
755              
756             void XPUSHn(NV nv)','name' => 'XPUSHn'},'PL_opfreehook' => {'text' => 'When non-C, the function pointed by this variable will be called each time an OP is freed with the corresponding OP as the argument.
757             This allows extensions to free any extra attribute they have locally attached to an OP.
758             It is also assured to first fire for the parent OP and then for its kids.
759              
760             When you replace this variable, it is considered a good practice to store the possibly previously installed hook and that you recall it inside your own.
761              
762             Perl_ophook_t PL_opfreehook','name' => 'PL_opfreehook'},'dump_all' => {'text' => '','name' => 'dump_all'},'ninstr' => {'text' => '','name' => 'ninstr'},'sv_vcatpvf' => {'text' => 'Processes its arguments like C and appends the formatted output
763             to an SV. Does not handle \'set\' magic. See C.
764              
765             Usually used via its frontend C.
766              
767             void sv_vcatpvf(SV *const sv, const char *const pat, va_list *const args)','name' => 'sv_vcatpvf'},'sv_pos_u2b' => {'text' => 'Converts the value pointed to by offsetp from a count of UTF-8 chars from
768             the start of the string, to a count of the equivalent number of bytes; if
769             lenp is non-zero, it does the same to lenp, but this time starting from
770             the offset, rather than from the start of the string. Handles magic and
771             type coercion.
772              
773             Use C in preference, which correctly handles strings longer
774             than 2Gb.
775              
776             void sv_pos_u2b(SV *const sv, I32 *const offsetp, I32 *const lenp)','name' => 'sv_pos_u2b'},'is_utf8_xdigit' => {'text' => '','name' => 'is_utf8_xdigit'},'upg_version' => {'text' => 'In-place upgrade of the supplied SV to a version object.
777              
778             SV *sv = upg_version(SV *sv, bool qv);
779              
780             Returns a pointer to the upgraded SV. Set the boolean qv if you want
781             to force this SV to be interpreted as an "extended" version.
782              
783             SV* upg_version(SV *ver, bool qv)','name' => 'upg_version'},'PERL_SYS_INIT3' => {'text' => 'Provides system-specific tune up of the C runtime environment necessary to
784             run Perl interpreters. This should be called only once, before creating
785             any Perl interpreters.
786              
787             void PERL_SYS_INIT3(int argc, char** argv, char** env)','name' => 'PERL_SYS_INIT3'},'HeSVKEY_set' => {'text' => 'Sets the key to a given C, taking care to set the appropriate flags to
788             indicate the presence of an C key, and returns the same
789             C.
790              
791             SV* HeSVKEY_set(HE* he, SV* sv)','name' => 'HeSVKEY_set'},'is_utf8_perl_space' => {'text' => '','name' => 'is_utf8_perl_space'},'SPAGAIN' => {'text' => 'Refetch the stack pointer. Used after a callback. See L.
792              
793             SPAGAIN;','name' => 'SPAGAIN'},'newCVREF' => {'text' => '','name' => 'newCVREF'},'my_bcopy' => {'text' => '','name' => 'my_bcopy'},'PL_parser-Ebufptr' => {'text' => 'Points to the current position of lexing inside the lexer buffer.
794             Characters around this point may be freely examined, within
795             the range delimited by Clinestr>)> and
796             Lbufend>. The octets of the buffer may be intended to be
797             interpreted as either UTF-8 or Latin-1, as indicated by L.
798              
799             Lexing code (whether in the Perl core or not) moves this pointer past
800             the characters that it consumes. It is also expected to perform some
801             bookkeeping whenever a newline character is consumed. This movement
802             can be more conveniently performed by the function L,
803             which handles newlines appropriately.
804              
805             Interpretation of the buffer\'s octets can be abstracted out by
806             using the slightly higher-level functions L and
807             L.
808              
809             NOTE: this function is experimental and may change or be
810             removed without notice.','name' => 'PL_parser-Ebufptr'},'G_NOARGS' => {'text' => 'Indicates that no arguments are being sent to a callback. See
811             L.','name' => 'G_NOARGS'},'amagic_deref_call' => {'text' => '','name' => 'amagic_deref_call'},'is_uni_ascii_lc' => {'text' => '','name' => 'is_uni_ascii_lc'},'lex_start' => {'text' => 'Creates and initialises a new lexer/parser state object, supplying
812             a context in which to lex and parse from a new source of Perl code.
813             A pointer to the new state object is placed in L. An entry
814             is made on the save stack so that upon unwinding the new state object
815             will be destroyed and the former value of L will be restored.
816             Nothing else need be done to clean up the parsing context.
817              
818             The code to be parsed comes from I and I. I, if
819             non-null, provides a string (in SV form) containing code to be parsed.
820             A copy of the string is made, so subsequent modification of I
821             does not affect parsing. I, if non-null, provides an input stream
822             from which code will be read to be parsed. If both are non-null, the
823             code in I comes first and must consist of complete lines of input,
824             and I supplies the remainder of the source.
825              
826             The I parameter is reserved for future use, and must always
827             be zero, except for one flag that is currently reserved for perl\'s internal
828             use.
829              
830             NOTE: this function is experimental and may change or be
831             removed without notice.
832              
833             void lex_start(SV *line, PerlIO *rsfp, U32 flags)','name' => 'lex_start'},'hv_riter_set' => {'text' => '','name' => 'hv_riter_set'},'to_uni_lower' => {'text' => '','name' => 'to_uni_lower'},'dounwind' => {'text' => '','name' => 'dounwind'},'ptr_table_clear' => {'text' => '','name' => 'ptr_table_clear'},'uvchr_to_utf8_flags' => {'text' => '','name' => 'uvchr_to_utf8_flags'},'save_hash' => {'text' => '','name' => 'save_hash'},'sv_isa' => {'text' => 'Returns a boolean indicating whether the SV is blessed into the specified
834             class. This does not check for subtypes; use C to verify
835             an inheritance relationship.
836              
837             int sv_isa(SV* sv, const char *const name)','name' => 'sv_isa'},'cophh_free' => {'text' => 'Discard the cop hints hash I, freeing all resources associated
838             with it.
839              
840             NOTE: this function is experimental and may change or be
841             removed without notice.
842              
843             void cophh_free(COPHH *cophh)','name' => 'cophh_free'},'isXDIGIT' => {'text' => 'Returns a boolean indicating whether the specified character is a hexadecimal
844             digit, [0-9A-Fa-f]. Variants C and C are
845             identical to C.
846              
847             bool isXDIGIT(char ch)','name' => 'isXDIGIT'},'sv_catpvf' => {'text' => 'Processes its arguments like C and appends the formatted
848             output to an SV. If the appended data contains "wide" characters
849             (including, but not limited to, SVs with a UTF-8 PV formatted with %s,
850             and characters >255 formatted with %c), the original SV might get
851             upgraded to UTF-8. Handles \'get\' magic, but not \'set\' magic. See
852             C. If the original SV was UTF-8, the pattern should be
853             valid UTF-8; if the original SV was bytes, the pattern should be too.
854              
855             void sv_catpvf(SV *const sv, const char *const pat, ...)','name' => 'sv_catpvf'},'XSRETURN_PV' => {'text' => 'Return a copy of a string from an XSUB immediately. Uses C.
856              
857             void XSRETURN_PV(char* str)','name' => 'XSRETURN_PV'},'utf8_to_uvuni' => {'text' => 'Returns the Unicode code point of the first character in the string C
858             which is assumed to be in UTF-8 encoding; C will be set to the
859             length, in bytes, of that character.
860              
861             This function should only be used when the returned UV is considered
862             an index into the Unicode semantic tables (e.g. swashes).
863              
864             If C does not point to a well-formed UTF-8 character, zero is
865             returned and retlen is set, if possible, to -1.
866              
867             UV utf8_to_uvuni(const U8 *s, STRLEN *retlen)','name' => 'utf8_to_uvuni'},'is_utf8_idcont' => {'text' => '','name' => 'is_utf8_idcont'},'av_fill' => {'text' => 'Set the highest index in the array to the given number, equivalent to
868             Perl\'s C<$#array = $fill;>.
869              
870             The number of elements in the an array will be C after
871             av_fill() returns. If the array was previously shorter, then the
872             additional elements appended are set to C. If the array
873             was longer, then the excess elements are freed. C is
874             the same as C.
875              
876             void av_fill(AV *av, I32 fill)','name' => 'av_fill'},'croak_sv' => {'text' => 'This is an XS interface to Perl\'s C function.
877              
878             C is the error message or object. If it is a reference, it
879             will be used as-is. Otherwise it is used as a string, and if it does
880             not end with a newline then it will be extended with some indication of
881             the current location in the code, as described for L.
882              
883             The error message or object will be used as an exception, by default
884             returning control to the nearest enclosing C, but subject to
885             modification by a C<$SIG{__DIE__}> handler. In any case, the C
886             function never returns normally.
887              
888             To die with a simple string message, the L function may be
889             more convenient.
890              
891             void croak_sv(SV *baseex)','name' => 'croak_sv'},'warn_nocontext' => {'text' => '','name' => 'warn_nocontext'},'my_swap' => {'text' => '','name' => 'my_swap'},'SvIOK_only' => {'text' => 'Tells an SV that it is an integer and disables all other OK bits.
892              
893             void SvIOK_only(SV* sv)','name' => 'SvIOK_only'},'MoveD' => {'text' => 'Like C but returns dest. Useful for encouraging compilers to tail-call
894             optimise.
895              
896             void * MoveD(void* src, void* dest, int nitems, type)','name' => 'MoveD'},'gv_IOadd' => {'text' => '','name' => 'gv_IOadd'},'grok_bin' => {'text' => 'converts a string representing a binary number to numeric form.
897              
898             On entry I and I<*len> give the string to scan, I<*flags> gives
899             conversion flags, and I should be NULL or a pointer to an NV.
900             The scan stops at the end of the string, or the first invalid character.
901             Unless C is set in I<*flags>, encountering an
902             invalid character will also trigger a warning.
903             On return I<*len> is set to the length of the scanned string,
904             and I<*flags> gives output flags.
905              
906             If the value is <= C it is returned as a UV, the output flags are clear,
907             and nothing is written to I<*result>. If the value is > UV_MAX C
908             returns UV_MAX, sets C in the output flags,
909             and writes the value to I<*result> (or the value is discarded if I
910             is NULL).
911              
912             The binary number may optionally be prefixed with "0b" or "b" unless
913             C is set in I<*flags> on entry. If
914             C is set in I<*flags> then the binary
915             number may use \'_\' characters to separate digits.
916              
917             UV grok_bin(const char* start, STRLEN* len_p, I32* flags, NV *result)','name' => 'grok_bin'},'parse_barestmt' => {'text' => 'Parse a single unadorned Perl statement. This may be a normal imperative
918             statement or a declaration that has compile-time effect. It does not
919             include any label or other affixture. It is up to the caller to ensure
920             that the dynamic parser state (L et al) is correctly set to
921             reflect the source of the code to be parsed and the lexical context for
922             the statement.
923              
924             The op tree representing the statement is returned. This may be a
925             null pointer if the statement is null, for example if it was actually
926             a subroutine definition (which has compile-time side effects). If not
927             null, it will be ops directly implementing the statement, suitable to
928             pass to L. It will not normally include a C or
929             equivalent op (except for those embedded in a scope contained entirely
930             within the statement).
931              
932             If an error occurs in parsing or compilation, in most cases a valid op
933             tree (most likely null) is returned anyway. The error is reflected in
934             the parser state, normally resulting in a single exception at the top
935             level of parsing which covers all the compilation errors that occurred.
936             Some compilation errors, however, will throw an exception immediately.
937              
938             The I parameter is reserved for future use, and must always
939             be zero.
940              
941             NOTE: this function is experimental and may change or be
942             removed without notice.
943              
944             OP * parse_barestmt(U32 flags)','name' => 'parse_barestmt'},'cast_uv' => {'text' => '','name' => 'cast_uv'},'perl_free' => {'text' => 'Releases a Perl interpreter. See L.
945              
946             void perl_free(PerlInterpreter *my_perl)','name' => 'perl_free'},'mg_find' => {'text' => 'Finds the magic pointer for type matching the SV. See C.
947              
948             MAGIC* mg_find(const SV* sv, int type)','name' => 'mg_find'},'safesysfree' => {'text' => '','name' => 'safesysfree'},'BhkENTRY_set' => {'text' => 'Set an entry in the BHK structure, and set the flags to indicate it is
949             valid. I is a preprocessing token indicating which entry to set.
950             The type of I depends on the entry.
951              
952             NOTE: this function is experimental and may change or be
953             removed without notice.
954              
955             void BhkENTRY_set(BHK *hk, which, void *ptr)','name' => 'BhkENTRY_set'},'PL_parser-Elinestr' => {'text' => 'Buffer scalar containing the chunk currently under consideration of the
956             text currently being lexed. This is always a plain string scalar (for
957             which C is true). It is not intended to be used as a scalar by
958             normal scalar means; instead refer to the buffer directly by the pointer
959             variables described below.
960              
961             The lexer maintains various C pointers to things in the
962             Clinestr> buffer. If Clinestr> is ever
963             reallocated, all of these pointers must be updated. Don\'t attempt to
964             do this manually, but rather use L if you need to
965             reallocate the buffer.
966              
967             The content of the text chunk in the buffer is commonly exactly one
968             complete line of input, up to and including a newline terminator,
969             but there are situations where it is otherwise. The octets of the
970             buffer may be intended to be interpreted as either UTF-8 or Latin-1.
971             The function L tells you which. Do not use the C
972             flag on this scalar, which may disagree with it.
973              
974             For direct examination of the buffer, the variable
975             Lbufend> points to the end of the buffer. The current
976             lexing position is pointed to by Lbufptr>. Direct use
977             of these pointers is usually preferable to examination of the scalar
978             through normal scalar means.
979              
980             NOTE: this function is experimental and may change or be
981             removed without notice.','name' => 'PL_parser-Elinestr'},'hv_riter_p' => {'text' => '','name' => 'hv_riter_p'},'newSVpvn_share' => {'text' => 'Creates a new SV with its SvPVX_const pointing to a shared string in the string
982             table. If the string does not already exist in the table, it is created
983             first. Turns on READONLY and FAKE. If the C parameter is non-zero, that
984             value is used; otherwise the hash is computed. The string\'s hash can be later
985             be retrieved from the SV with the C macro. The idea here is
986             that as the string table is used for shared hash keys these strings will have
987             SvPVX_const == HeKEY and hash lookup will avoid string compare.
988              
989             SV* newSVpvn_share(const char* s, I32 len, U32 hash)','name' => 'newSVpvn_share'},'mro_set_mro' => {'text' => '','name' => 'mro_set_mro'},'SvPOKp' => {'text' => 'Returns a U32 value indicating whether the SV contains a character string.
990             Checks the B setting. Use C instead.
991              
992             U32 SvPOKp(SV* sv)','name' => 'SvPOKp'},'pregfree2' => {'text' => '','name' => 'pregfree2'},'sv_catpvn' => {'text' => 'Concatenates the string onto the end of the string which is in the SV. The
993             C indicates number of bytes to copy. If the SV has the UTF-8
994             status set, then the bytes appended should be valid UTF-8.
995             Handles \'get\' magic, but not \'set\' magic. See C.
996              
997             void sv_catpvn(SV *dsv, const char *sstr, STRLEN len)','name' => 'sv_catpvn'},'my_socketpair' => {'text' => '','name' => 'my_socketpair'},'blockhook_register' => {'text' => 'Register a set of hooks to be called when the Perl lexical scope changes
998             at compile time. See L.
999              
1000             NOTE: this function is experimental and may change or be
1001             removed without notice.
1002              
1003             NOTE: this function must be explicitly called as Perl_blockhook_register with an aTHX_ parameter.
1004              
1005             void Perl_blockhook_register(pTHX_ BHK *hk)','name' => 'blockhook_register'},'init_global_struct' => {'text' => '','name' => 'init_global_struct'},'find_rundefsv' => {'text' => '','name' => 'find_rundefsv'},'sv_utf8_downgrade' => {'text' => 'Attempts to convert the PV of an SV from characters to bytes.
1006             If the PV contains a character that cannot fit
1007             in a byte, this conversion will fail;
1008             in this case, either returns false or, if C is not
1009             true, croaks.
1010              
1011             This is not as a general purpose Unicode to byte encoding interface:
1012             use the Encode extension for that.
1013              
1014             NOTE: this function is experimental and may change or be
1015             removed without notice.
1016              
1017             bool sv_utf8_downgrade(SV *const sv, const bool fail_ok)','name' => 'sv_utf8_downgrade'},'utf8_hop' => {'text' => 'Return the UTF-8 pointer C displaced by C characters, either
1018             forward or backward.
1019              
1020             WARNING: do not use the following unless you *know* C is within
1021             the UTF-8 data pointed to by C *and* that on entry C is aligned
1022             on the first byte of character or just after the last byte of a character.
1023              
1024             U8* utf8_hop(const U8 *s, I32 off)','name' => 'utf8_hop'},'newPROG' => {'text' => '','name' => 'newPROG'},'sv_setref_pvn' => {'text' => 'Copies a string into a new SV, optionally blessing the SV. The length of the
1025             string must be specified with C. The C argument will be upgraded to
1026             an RV. That RV will be modified to point to the new SV. The C
1027             argument indicates the package for the blessing. Set C to
1028             C to avoid the blessing. The new SV will have a reference count
1029             of 1, and the RV will be returned.
1030              
1031             Note that C copies the pointer while this copies the string.
1032              
1033             SV* sv_setref_pvn(SV *const rv, const char *const classname, const char *const pv, const STRLEN n)','name' => 'sv_setref_pvn'},'SVt_PVMG' => {'text' => 'Type flag for blessed scalars. See C.','name' => 'SVt_PVMG'},'gv_fetchsv' => {'text' => '','name' => 'gv_fetchsv'},'PUSHp' => {'text' => 'Push a string onto the stack. The stack must have room for this element.
1034             The C indicates the length of the string. Handles \'set\' magic. Uses
1035             C, so C or C should be called to declare it. Do not
1036             call multiple C-oriented macros to return lists from XSUB\'s - see
1037             C instead. See also C and C.
1038              
1039             void PUSHp(char* str, STRLEN len)','name' => 'PUSHp'},'my_strftime' => {'text' => '','name' => 'my_strftime'},'mXPUSHi' => {'text' => 'Push an integer onto the stack, extending the stack if necessary.
1040             Does not use C. See also C, C and C.
1041              
1042             void mXPUSHi(IV iv)','name' => 'mXPUSHi'},'PL_sv_undef' => {'text' => 'This is the C SV. Always refer to this as C<&PL_sv_undef>.
1043              
1044             SV PL_sv_undef','name' => 'PL_sv_undef'},'hv_iterkeysv' => {'text' => 'Returns the key as an C from the current position of the hash
1045             iterator. The return value will always be a mortal copy of the key. Also
1046             see C.
1047              
1048             SV* hv_iterkeysv(HE* entry)','name' => 'hv_iterkeysv'},'sv_catpv_flags' => {'text' => 'Concatenates the string onto the end of the string which is in the SV.
1049             If the SV has the UTF-8 status set, then the bytes appended should
1050             be valid UTF-8. If C has C bit set, will C
1051             on the SVs if appropriate, else not.
1052              
1053             void sv_catpv_flags(SV *dstr, const char *sstr, const I32 flags)','name' => 'sv_catpv_flags'},'mPUSHp' => {'text' => 'Push a string onto the stack. The stack must have room for this element.
1054             The C indicates the length of the string. Does not use C.
1055             See also C, C and C.
1056              
1057             void mPUSHp(char* str, STRLEN len)','name' => 'mPUSHp'},'lex_stuff_pv' => {'text' => 'Insert characters into the lexer buffer (Llinestr>),
1058             immediately after the current lexing point (Lbufptr>),
1059             reallocating the buffer if necessary. This means that lexing code that
1060             runs later will see the characters as if they had appeared in the input.
1061             It is not recommended to do this as part of normal parsing, and most
1062             uses of this facility run the risk of the inserted characters being
1063             interpreted in an unintended manner.
1064              
1065             The string to be inserted is represented by octets starting at I
1066             and continuing to the first nul. These octets are interpreted as either
1067             UTF-8 or Latin-1, according to whether the C flag is set
1068             in I. The characters are recoded for the lexer buffer, according
1069             to how the buffer is currently being interpreted (L).
1070             If it is not convenient to nul-terminate a string to be inserted, the
1071             L function is more appropriate.
1072              
1073             NOTE: this function is experimental and may change or be
1074             removed without notice.
1075              
1076             void lex_stuff_pv(const char *pv, U32 flags)','name' => 'lex_stuff_pv'},'av_delete' => {'text' => 'Deletes the element indexed by C from the array, makes the element mortal,
1077             and returns it. If C equals C, the element is freed and null
1078             is returned. Perl equivalent: C for the
1079             non-C version and a void-context C for the
1080             C version.
1081              
1082             SV* av_delete(AV *av, I32 key, I32 flags)','name' => 'av_delete'},'utf8_distance' => {'text' => 'Returns the number of UTF-8 characters between the UTF-8 pointers C
1083             and C.
1084              
1085             WARNING: use only if you *know* that the pointers point inside the
1086             same UTF-8 buffer.
1087              
1088             IV utf8_distance(const U8 *a, const U8 *b)','name' => 'utf8_distance'},'SvPV_nomg' => {'text' => 'Like C but doesn\'t process magic.
1089              
1090             char* SvPV_nomg(SV* sv, STRLEN len)','name' => 'SvPV_nomg'},'parser_dup' => {'text' => '','name' => 'parser_dup'},'do_sprintf' => {'text' => '','name' => 'do_sprintf'},'SvUV_nomg' => {'text' => 'Like C but doesn\'t process magic.
1091              
1092             UV SvUV_nomg(SV* sv)','name' => 'SvUV_nomg'},'save_I32' => {'text' => '','name' => 'save_I32'},'gv_autoload4' => {'text' => '','name' => 'gv_autoload4'},'POPpx' => {'text' => 'Pops a string off the stack.
1093              
1094             char* POPpx','name' => 'POPpx'},'PL_modglobal' => {'text' => 'C is a general purpose, interpreter global HV for use by
1095             extensions that need to keep information on a per-interpreter basis.
1096             In a pinch, it can also be used as a symbol table for extensions
1097             to share data among each other. It is a good idea to use keys
1098             prefixed by the package name of the extension that owns the data.
1099              
1100             HV* PL_modglobal','name' => 'PL_modglobal'},'newCONDOP' => {'text' => 'Constructs, checks, and returns a conditional-expression (C)
1101             op. I gives the eight bits of C, except that C
1102             will be set automatically, and, shifted up eight bits, the eight bits of
1103             C, except that the bit with value 1 is automatically set.
1104             I supplies the expression selecting between the two branches,
1105             and I and I supply the branches; they are consumed by
1106             this function and become part of the constructed op tree.
1107              
1108             OP * newCONDOP(I32 flags, OP *first, OP *trueop, OP *falseop)','name' => 'newCONDOP'},'save_pushi32ptr' => {'text' => '','name' => 'save_pushi32ptr'},'sv_setpvs' => {'text' => 'Like C, but takes a literal string instead of a string/length pair.
1109              
1110             void sv_setpvs(SV* sv, const char* s)','name' => 'sv_setpvs'},'is_uni_punct_lc' => {'text' => '','name' => 'is_uni_punct_lc'},'cxinc' => {'text' => '','name' => 'cxinc'},'SvUVx' => {'text' => 'Coerces the given SV to an unsigned integer and returns it. Guarantees to
1111             C only once. Only use this if C is an expression with side effects,
1112             otherwise use the more efficient C.
1113              
1114             UV SvUVx(SV* sv)','name' => 'SvUVx'},'SvROK_on' => {'text' => 'Tells an SV that it is an RV.
1115              
1116             void SvROK_on(SV* sv)','name' => 'SvROK_on'},'G_VOID' => {'text' => 'Used to indicate void context. See C and L.','name' => 'G_VOID'},'sv_clear' => {'text' => 'Clear an SV: call any destructors, free up any memory used by the body,
1117             and free the body itself. The SV\'s head is I freed, although
1118             its type is set to all 1\'s so that it won\'t inadvertently be assumed
1119             to be live during global destruction etc.
1120             This function should only be called when REFCNT is zero. Most of the time
1121             you\'ll want to call C (or its macro wrapper C)
1122             instead.
1123              
1124             void sv_clear(SV *const orig_sv)','name' => 'sv_clear'},'lex_read_space' => {'text' => 'Reads optional spaces, in Perl style, in the text currently being
1125             lexed. The spaces may include ordinary whitespace characters and
1126             Perl-style comments. C<#line> directives are processed if encountered.
1127             Lbufptr> is moved past the spaces, so that it points
1128             at a non-space character (or the end of the input text).
1129              
1130             If spaces extend into the next chunk of input text, the next chunk will
1131             be read in. Normally the current chunk will be discarded at the same
1132             time, but if I includes C then the current
1133             chunk will not be discarded.
1134              
1135             NOTE: this function is experimental and may change or be
1136             removed without notice.
1137              
1138             void lex_read_space(U32 flags)','name' => 'lex_read_space'},'XSRETURN_NV' => {'text' => 'Return a double from an XSUB immediately. Uses C.
1139              
1140             void XSRETURN_NV(NV nv)','name' => 'XSRETURN_NV'},'SvGAMAGIC' => {'text' => 'Returns true if the SV has get magic or overloading. If either is true then
1141             the scalar is active data, and has the potential to return a new value every
1142             time it is accessed. Hence you must be careful to only read it once per user
1143             logical operation and work with that returned value. If neither is true then
1144             the scalar\'s value cannot change unless written to.
1145              
1146             U32 SvGAMAGIC(SV* sv)','name' => 'SvGAMAGIC'},'svtype' => {'text' => 'An enum of flags for Perl types. These are found in the file B
1147             in the C enum. Test these flags with the C macro.','name' => 'svtype'},'hv_placeholders_get' => {'text' => '','name' => 'hv_placeholders_get'},'load_module' => {'text' => 'Loads the module whose name is pointed to by the string part of name.
1148             Note that the actual module name, not its filename, should be given.
1149             Eg, "Foo::Bar" instead of "Foo/Bar.pm". flags can be any of
1150             PERL_LOADMOD_DENY, PERL_LOADMOD_NOIMPORT, or PERL_LOADMOD_IMPORT_OPS
1151             (or 0 for no flags). ver, if specified, provides version semantics
1152             similar to C. The optional trailing SV*
1153             arguments can be used to specify arguments to the module\'s import()
1154             method, similar to C. They must be
1155             terminated with a final NULL pointer. Note that this list can only
1156             be omitted when the PERL_LOADMOD_NOIMPORT flag has been used.
1157             Otherwise at least a single NULL pointer to designate the default
1158             import list is required.
1159              
1160             void load_module(U32 flags, SV* name, SV* ver, ...)','name' => 'load_module'},'dump_eval' => {'text' => '','name' => 'dump_eval'},'Poison' => {'text' => 'PoisonWith(0xEF) for catching access to freed memory.
1161              
1162             void Poison(void* dest, int nitems, type)','name' => 'Poison'},'is_uni_alpha_lc' => {'text' => '','name' => 'is_uni_alpha_lc'},'sv_catpvf_mg' => {'text' => 'Like C, but also handles \'set\' magic.
1163              
1164             void sv_catpvf_mg(SV *const sv, const char *const pat, ...)','name' => 'sv_catpvf_mg'},'get_sv' => {'text' => 'Returns the SV of the specified Perl scalar. C are passed to
1165             C. If C is set and the
1166             Perl variable does not exist then it will be created. If C is zero
1167             and the variable does not exist then NULL is returned.
1168              
1169             NOTE: the perl_ form of this function is deprecated.
1170              
1171             SV* get_sv(const char *name, I32 flags)','name' => 'get_sv'},'warn_sv' => {'text' => 'This is an XS interface to Perl\'s C function.
1172              
1173             C is the error message or object. If it is a reference, it
1174             will be used as-is. Otherwise it is used as a string, and if it does
1175             not end with a newline then it will be extended with some indication of
1176             the current location in the code, as described for L.
1177              
1178             The error message or object will by default be written to standard error,
1179             but this is subject to modification by a C<$SIG{__WARN__}> handler.
1180              
1181             To warn with a simple string message, the L function may be
1182             more convenient.
1183              
1184             void warn_sv(SV *baseex)','name' => 'warn_sv'},'GetVars' => {'text' => '','name' => 'GetVars'},'do_hv_dump' => {'text' => '','name' => 'do_hv_dump'},'sv_setpv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
1185              
1186             void sv_setpv_mg(SV *const sv, const char *const ptr)','name' => 'sv_setpv_mg'},'whichsig' => {'text' => '','name' => 'whichsig'},'lex_next_chunk' => {'text' => 'Reads in the next chunk of text to be lexed, appending it to
1187             Llinestr>. This should be called when lexing code has
1188             looked to the end of the current chunk and wants to know more. It is
1189             usual, but not necessary, for lexing to have consumed the entirety of
1190             the current chunk at this time.
1191              
1192             If Lbufptr> is pointing to the very end of the current
1193             chunk (i.e., the current chunk has been entirely consumed), normally the
1194             current chunk will be discarded at the same time that the new chunk is
1195             read in. If I includes C, the current chunk
1196             will not be discarded. If the current chunk has not been entirely
1197             consumed, then it will not be discarded regardless of the flag.
1198              
1199             Returns true if some new text was added to the buffer, or false if the
1200             buffer has reached the end of the input text.
1201              
1202             NOTE: this function is experimental and may change or be
1203             removed without notice.
1204              
1205             bool lex_next_chunk(U32 flags)','name' => 'lex_next_chunk'},'sv_2mortal' => {'text' => 'Marks an existing SV as mortal. The SV will be destroyed "soon", either
1206             by an explicit call to FREETMPS, or by an implicit call at places such as
1207             statement boundaries. SvTEMP() is turned on which means that the SV\'s
1208             string buffer can be "stolen" if this SV is copied. See also C
1209             and C.
1210              
1211             SV* sv_2mortal(SV *const sv)','name' => 'sv_2mortal'},'sv_2bool_flags' => {'text' => 'This function is only used by sv_true() and friends, and only if
1212             the latter\'s argument is neither SvPOK, SvIOK nor SvNOK. If the flags
1213             contain SV_GMAGIC, then it does an mg_get() first.
1214              
1215              
1216             bool sv_2bool_flags(SV *const sv, const I32 flags)','name' => 'sv_2bool_flags'},'hv_store_flags' => {'text' => '','name' => 'hv_store_flags'},'is_uni_graph' => {'text' => '','name' => 'is_uni_graph'},'malloc' => {'text' => '','name' => 'malloc'},'av_undef' => {'text' => 'Undefines the array. Frees the memory used by the array itself.
1217              
1218             void av_undef(AV *av)','name' => 'av_undef'},'parse_label' => {'text' => 'Parse a single label, possibly optional, of the type that may prefix a
1219             Perl statement. It is up to the caller to ensure that the dynamic parser
1220             state (L et al) is correctly set to reflect the source of
1221             the code to be parsed. If I includes C then the
1222             label is optional, otherwise it is mandatory.
1223              
1224             The name of the label is returned in the form of a fresh scalar. If an
1225             optional label is absent, a null pointer is returned.
1226              
1227             If an error occurs in parsing, which can only occur if the label is
1228             mandatory, a valid label is returned anyway. The error is reflected in
1229             the parser state, normally resulting in a single exception at the top
1230             level of parsing which covers all the compilation errors that occurred.
1231              
1232             NOTE: this function is experimental and may change or be
1233             removed without notice.
1234              
1235             SV * parse_label(U32 flags)','name' => 'parse_label'},'pack_cat' => {'text' => 'The engine implementing pack() Perl function. Note: parameters next_in_list and
1236             flags are not used. This call should not be used; use packlist instead.
1237              
1238             void pack_cat(SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags)','name' => 'pack_cat'},'PerlIO_read' => {'text' => '','name' => 'PerlIO_read'},'sv_cmp' => {'text' => 'Compares the strings in two SVs. Returns -1, 0, or 1 indicating whether the
1239             string in C is less than, equal to, or greater than the string in
1240             C. Is UTF-8 and \'use bytes\' aware, handles get magic, and will
1241             coerce its args to strings if necessary. See also C.
1242              
1243             I32 sv_cmp(SV *const sv1, SV *const sv2)','name' => 'sv_cmp'},'mg_free' => {'text' => 'Free any magic storage used by the SV. See C.
1244              
1245             int mg_free(SV* sv)','name' => 'mg_free'},'sv_force_normal_flags' => {'text' => 'Undo various types of fakery on an SV: if the PV is a shared string, make
1246             a private copy; if we\'re a ref, stop refing; if we\'re a glob, downgrade to
1247             an xpvmg; if we\'re a copy-on-write scalar, this is the on-write time when
1248             we do the copy, and is also used locally. If C is set
1249             then a copy-on-write scalar drops its PV buffer (if any) and becomes
1250             SvPOK_off rather than making a copy. (Used where this scalar is about to be
1251             set to some other value.) In addition, the C parameter gets passed to
1252             C when unreffing. C calls this function
1253             with flags set to 0.
1254              
1255             void sv_force_normal_flags(SV *const sv, const U32 flags)','name' => 'sv_force_normal_flags'},'cophh_fetch_pv' => {'text' => 'Like L, but takes a nul-terminated string instead of
1256             a string/length pair.
1257              
1258             NOTE: this function is experimental and may change or be
1259             removed without notice.
1260              
1261             SV * cophh_fetch_pv(const COPHH *cophh, const char *key, U32 hash, U32 flags)','name' => 'cophh_fetch_pv'},'tmps_grow' => {'text' => '','name' => 'tmps_grow'},'is_utf8_char' => {'text' => 'Tests if some arbitrary number of bytes begins in a valid UTF-8
1262             character. Note that an INVARIANT (i.e. ASCII on non-EBCDIC machines)
1263             character is a valid UTF-8 character. The actual number of bytes in the UTF-8
1264             character will be returned if it is valid, otherwise 0.
1265              
1266             STRLEN is_utf8_char(const U8 *s)','name' => 'is_utf8_char'},'get_vtbl' => {'text' => '','name' => 'get_vtbl'},'save_hints' => {'text' => '','name' => 'save_hints'},'SvNOK_off' => {'text' => 'Unsets the NV status of an SV.
1267              
1268             void SvNOK_off(SV* sv)','name' => 'SvNOK_off'},'sv_utf8_upgrade' => {'text' => 'Converts the PV of an SV to its UTF-8-encoded form.
1269             Forces the SV to string form if it is not already.
1270             Will C on C if appropriate.
1271             Always sets the SvUTF8 flag to avoid future validity checks even
1272             if the whole string is the same in UTF-8 as not.
1273             Returns the number of bytes in the converted string
1274              
1275             This is not as a general purpose byte encoding to Unicode interface:
1276             use the Encode extension for that.
1277              
1278             STRLEN sv_utf8_upgrade(SV *sv)','name' => 'sv_utf8_upgrade'},'dXSARGS' => {'text' => 'Sets up stack and mark pointers for an XSUB, calling dSP and dMARK.
1279             Sets up the C and C variables by calling C and C.
1280             This is usually handled automatically by C.
1281              
1282             dXSARGS;','name' => 'dXSARGS'},'savesharedpv' => {'text' => 'A version of C which allocates the duplicate string in memory
1283             which is shared between threads.
1284              
1285             char* savesharedpv(const char* pv)','name' => 'savesharedpv'},'isSPACE' => {'text' => 'Returns a boolean indicating whether the specified character is a
1286             whitespace character in the platform\'s native character set. This is the same
1287             as what C<\\s> matches in a regular expression.
1288             See the L for an explanation of variants
1289             C and C.
1290              
1291             bool isSPACE(char ch)','name' => 'isSPACE'},'Safefree' => {'text' => 'The XSUB-writer\'s interface to the C C function.
1292              
1293             void Safefree(void* ptr)','name' => 'Safefree'},'custom_op_desc' => {'text' => 'Return the description of a given custom op. This was once used by the
1294             OP_DESC macro, but is no longer: it has only been kept for
1295             compatibility, and should not be used.
1296              
1297             const char * custom_op_desc(const OP *o)','name' => 'custom_op_desc'},'regdupe_internal' => {'text' => '','name' => 'regdupe_internal'},'gv_stashpvn' => {'text' => 'Returns a pointer to the stash for a specified package. The C
1298             parameter indicates the length of the C, in bytes. C is passed
1299             to C, so if set to C then the package will be
1300             created if it does not already exist. If the package does not exist and
1301             C is 0 (or any other setting that does not create packages) then NULL
1302             is returned.
1303              
1304              
1305             HV* gv_stashpvn(const char* name, U32 namelen, I32 flags)','name' => 'gv_stashpvn'},'vmess' => {'text' => 'C and C are a sprintf-style format pattern and encapsulated
1306             argument list. These are used to generate a string message. If the
1307             message does not end with a newline, then it will be extended with
1308             some indication of the current location in the code, as described for
1309             L.
1310              
1311             Normally, the resulting message is returned in a new mortal SV.
1312             During global destruction a single SV may be shared between uses of
1313             this function.
1314              
1315             SV * vmess(const char *pat, va_list *args)','name' => 'vmess'},'to_uni_fold' => {'text' => '','name' => 'to_uni_fold'},'new_collate' => {'text' => '','name' => 'new_collate'},'my_stat' => {'text' => '','name' => 'my_stat'},'my_setenv' => {'text' => '','name' => 'my_setenv'},'newSV_type' => {'text' => 'Creates a new SV, of the type specified. The reference count for the new SV
1316             is set to 1.
1317              
1318             SV* newSV_type(const svtype type)','name' => 'newSV_type'},'SvREFCNT_inc_void_NN' => {'text' => 'Same as SvREFCNT_inc, but can only be used if you don\'t need the return
1319             value, and you know that I is not NULL. The macro doesn\'t need
1320             to return a meaningful value, or check for NULLness, so it\'s smaller
1321             and faster.
1322              
1323             void SvREFCNT_inc_void_NN(SV* sv)','name' => 'SvREFCNT_inc_void_NN'},'Perl_signbit' => {'text' => 'Return a non-zero integer if the sign bit on an NV is set, and 0 if
1324             it is not.
1325              
1326             If Configure detects this system has a signbit() that will work with
1327             our NVs, then we just use it via the #define in perl.h. Otherwise,
1328             fall back on this implementation. As a first pass, this gets everything
1329             right except -0.0. Alas, catching -0.0 is the main use for this function,
1330             so this is not too helpful yet. Still, at least we have the scaffolding
1331             in place to support other systems, should that prove useful.
1332              
1333              
1334             Configure notes: This function is called \'Perl_signbit\' instead of a
1335             plain \'signbit\' because it is easy to imagine a system having a signbit()
1336             function or macro that doesn\'t happen to work with our particular choice
1337             of NVs. We shouldn\'t just re-#define signbit as Perl_signbit and expect
1338             the standard system headers to be happy. Also, this is a no-context
1339             function (no pTHX_) because Perl_signbit() is usually re-#defined in
1340             perl.h as a simple macro call to the system\'s signbit().
1341             Users should just always call Perl_signbit().
1342              
1343             NOTE: this function is experimental and may change or be
1344             removed without notice.
1345              
1346             int Perl_signbit(NV f)','name' => 'Perl_signbit'},'PUSH_MULTICALL' => {'text' => 'Opening bracket for a lightweight callback.
1347             See L.
1348              
1349             PUSH_MULTICALL;','name' => 'PUSH_MULTICALL'},'new_ctype' => {'text' => '','name' => 'new_ctype'},'save_svref' => {'text' => '','name' => 'save_svref'},'to_uni_upper' => {'text' => '','name' => 'to_uni_upper'},'newNULLLIST' => {'text' => 'Constructs, checks, and returns a new C op, which represents an
1350             empty list expression.
1351              
1352             OP * newNULLLIST()','name' => 'newNULLLIST'},'is_uni_cntrl_lc' => {'text' => '','name' => 'is_uni_cntrl_lc'},'is_utf8_lower' => {'text' => '','name' => 'is_utf8_lower'},'sv_pos_u2b_flags' => {'text' => 'Converts the value pointed to by offsetp from a count of UTF-8 chars from
1353             the start of the string, to a count of the equivalent number of bytes; if
1354             lenp is non-zero, it does the same to lenp, but this time starting from
1355             the offset, rather than from the start of the string. Handles type coercion.
1356             I is passed to C, and usually should be
1357             C to handle magic.
1358              
1359             STRLEN sv_pos_u2b_flags(SV *const sv, STRLEN uoffset, STRLEN *const lenp, U32 flags)','name' => 'sv_pos_u2b_flags'},'init_tm' => {'text' => '','name' => 'init_tm'},'newWHILEOP' => {'text' => 'Constructs, checks, and returns an op tree expressing a C loop.
1360             This is a heavyweight loop, with structure that allows exiting the loop
1361             by C and suchlike.
1362              
1363             I is an optional preconstructed C op to use in the
1364             loop; if it is null then a suitable op will be constructed automatically.
1365             I supplies the loop\'s controlling expression. I supplies the
1366             main body of the loop, and I optionally supplies a C block
1367             that operates as a second half of the body. All of these optree inputs
1368             are consumed by this function and become part of the constructed op tree.
1369              
1370             I gives the eight bits of C for the C
1371             op and, shifted up eight bits, the eight bits of C for
1372             the C op, except that (in both cases) some bits will be set
1373             automatically. I is currently unused and should always be 1.
1374             I can be supplied as true to force the
1375             loop body to be enclosed in its own scope.
1376              
1377             OP * newWHILEOP(I32 flags, I32 debuggable, LOOP *loop, OP *expr, OP *block, OP *cont, I32 has_my)','name' => 'newWHILEOP'},'Gv_AMupdate' => {'text' => '','name' => 'Gv_AMupdate'},'filter_del' => {'text' => '','name' => 'filter_del'},'POPp' => {'text' => 'Pops a string off the stack. Deprecated. New code should use POPpx.
1378              
1379             char* POPp','name' => 'POPp'},'SvIV_nomg' => {'text' => 'Like C but doesn\'t process magic.
1380              
1381             IV SvIV_nomg(SV* sv)','name' => 'SvIV_nomg'},'RETVAL' => {'text' => 'Variable which is setup by C to hold the return value for an
1382             XSUB. This is always the proper type for the XSUB. See
1383             L.
1384              
1385             (whatever) RETVAL','name' => 'RETVAL'},'HeSVKEY' => {'text' => 'Returns the key as an C, or C if the hash entry does not
1386             contain an C key.
1387              
1388             SV* HeSVKEY(HE* he)','name' => 'HeSVKEY'},'newANONLIST' => {'text' => '','name' => 'newANONLIST'},'mg_findext' => {'text' => 'Finds the magic pointer of C with the given C for the C. See
1389             C.
1390              
1391             MAGIC* mg_findext(const SV* sv, int type, const MGVTBL *vtbl)','name' => 'mg_findext'},'my_memset' => {'text' => '','name' => 'my_memset'},'my_atof2' => {'text' => '','name' => 'my_atof2'},'PerlIO_get_ptr' => {'text' => '','name' => 'PerlIO_get_ptr'},'save_destructor' => {'text' => '','name' => 'save_destructor'},'sv_cmp_flags' => {'text' => 'Compares the strings in two SVs. Returns -1, 0, or 1 indicating whether the
1392             string in C is less than, equal to, or greater than the string in
1393             C. Is UTF-8 and \'use bytes\' aware and will coerce its args to strings
1394             if necessary. If the flags include SV_GMAGIC, it handles get magic. See
1395             also C.
1396              
1397             I32 sv_cmp_flags(SV *const sv1, SV *const sv2, const U32 flags)','name' => 'sv_cmp_flags'},'hv_iternextsv' => {'text' => 'Performs an C, C, and C in one
1398             operation.
1399              
1400             SV* hv_iternextsv(HV *hv, char **key, I32 *retlen)','name' => 'hv_iternextsv'},'lex_read_to' => {'text' => 'Consume text in the lexer buffer, from Lbufptr> up
1401             to I. This advances Lbufptr> to match I,
1402             performing the correct bookkeeping whenever a newline character is passed.
1403             This is the normal way to consume lexed text.
1404              
1405             Interpretation of the buffer\'s octets can be abstracted out by
1406             using the slightly higher-level functions L and
1407             L.
1408              
1409             NOTE: this function is experimental and may change or be
1410             removed without notice.
1411              
1412             void lex_read_to(char *ptr)','name' => 'lex_read_to'},'sv_pvbyten_force' => {'text' => 'The backend for the C macro. Always use the macro instead.
1413              
1414             char* sv_pvbyten_force(SV *const sv, STRLEN *const lp)','name' => 'sv_pvbyten_force'},'reg_named_buff_fetch' => {'text' => '','name' => 'reg_named_buff_fetch'},'ibcmp_locale' => {'text' => 'This is a synonym for (! foldEQ_locale())
1415              
1416             I32 ibcmp_locale(const char* a, const char* b, I32 len)','name' => 'ibcmp_locale'},'XST_mIV' => {'text' => 'Place an integer into the specified position C on the stack. The
1417             value is stored in a new mortal SV.
1418              
1419             void XST_mIV(int pos, IV iv)','name' => 'XST_mIV'},'save_pptr' => {'text' => '','name' => 'save_pptr'},'PerlIO_set_ptrcnt' => {'text' => '','name' => 'PerlIO_set_ptrcnt'},'mPUSHs' => {'text' => 'Push an SV onto the stack and mortalizes the SV. The stack must have room
1420             for this element. Does not use C. See also C and C.
1421              
1422             void mPUSHs(SV* sv)','name' => 'mPUSHs'},'dump_packsubs' => {'text' => '','name' => 'dump_packsubs'},'is_utf8_digit' => {'text' => '','name' => 'is_utf8_digit'},'GvSV' => {'text' => 'Return the SV from the GV.
1423              
1424             SV* GvSV(GV* gv)','name' => 'GvSV'},'init_i18nl10n' => {'text' => '','name' => 'init_i18nl10n'},'vform' => {'text' => '','name' => 'vform'},'get_op_descs' => {'text' => '','name' => 'get_op_descs'},'safesyscalloc' => {'text' => '','name' => 'safesyscalloc'},'POPi' => {'text' => 'Pops an integer off the stack.
1425              
1426             IV POPi','name' => 'POPi'},'parse_stmtseq' => {'text' => 'Parse a sequence of zero or more Perl statements. These may be normal
1427             imperative statements, including optional labels, or declarations
1428             that have compile-time effect, or any mixture thereof. The statement
1429             sequence ends when a closing brace or end-of-file is encountered in a
1430             place where a new statement could have validly started. It is up to
1431             the caller to ensure that the dynamic parser state (L et al)
1432             is correctly set to reflect the source of the code to be parsed and the
1433             lexical context for the statements.
1434              
1435             The op tree representing the statement sequence is returned. This may
1436             be a null pointer if the statements were all null, for example if there
1437             were no statements or if there were only subroutine definitions (which
1438             have compile-time side effects). If not null, it will be a C
1439             list, normally including C or equivalent ops.
1440              
1441             If an error occurs in parsing or compilation, in most cases a valid op
1442             tree is returned anyway. The error is reflected in the parser state,
1443             normally resulting in a single exception at the top level of parsing
1444             which covers all the compilation errors that occurred. Some compilation
1445             errors, however, will throw an exception immediately.
1446              
1447             The I parameter is reserved for future use, and must always
1448             be zero.
1449              
1450             NOTE: this function is experimental and may change or be
1451             removed without notice.
1452              
1453             OP * parse_stmtseq(U32 flags)','name' => 'parse_stmtseq'},'sv_2pvutf8_nolen' => {'text' => 'Return a pointer to the UTF-8-encoded representation of the SV.
1454             May cause the SV to be upgraded to UTF-8 as a side-effect.
1455              
1456             Usually accessed via the C macro.
1457              
1458             char* sv_2pvutf8_nolen(SV* sv)','name' => 'sv_2pvutf8_nolen'},'gv_HVadd' => {'text' => '','name' => 'gv_HVadd'},'custom_op_xop' => {'text' => 'Return the XOP structure for a given custom op. This function should be
1459             considered internal to OP_NAME and the other access macros: use them instead.
1460              
1461             NOTE: this function must be explicitly called as Perl_custom_op_xop with an aTHX_ parameter.
1462              
1463             const XOP * Perl_custom_op_xop(pTHX_ const OP *o)','name' => 'custom_op_xop'},'mro_get_linear_isa' => {'text' => 'Returns either C or
1464             C for the given stash,
1465             dependant upon which MRO is in effect
1466             for that stash. The return value is a
1467             read-only AV*.
1468              
1469             You are responsible for C on the
1470             return value if you plan to store it anywhere
1471             semi-permanently (otherwise it might be deleted
1472             out from under you the next time the cache is
1473             invalidated).
1474              
1475             AV* mro_get_linear_isa(HV* stash)','name' => 'mro_get_linear_isa'},'av_store' => {'text' => 'Stores an SV in an array. The array index is specified as C. The
1476             return value will be NULL if the operation failed or if the value did not
1477             need to be actually stored within the array (as in the case of tied
1478             arrays). Otherwise it can be dereferenced to get the original C. Note
1479             that the caller is responsible for suitably incrementing the reference
1480             count of C before the call, and decrementing it if the function
1481             returned NULL.
1482              
1483             See L for
1484             more information on how to use this function on tied arrays.
1485              
1486             SV** av_store(AV *av, I32 key, SV *val)','name' => 'av_store'},'SvPVbytex' => {'text' => 'Like C, but converts sv to byte representation first if necessary.
1487             Guarantees to evaluate sv only once; use the more efficient C
1488             otherwise.
1489              
1490             char* SvPVbytex(SV* sv, STRLEN len)','name' => 'SvPVbytex'},'reg_named_buff_scalar' => {'text' => '','name' => 'reg_named_buff_scalar'},'unlnk' => {'text' => '','name' => 'unlnk'},'av_fetch' => {'text' => 'Returns the SV at the specified index in the array. The C is the
1491             index. If lval is true, you are guaranteed to get a real SV back (in case
1492             it wasn\'t real before), which you can then modify. Check that the return
1493             value is non-null before dereferencing it to a C.
1494              
1495             See L for
1496             more information on how to use this function on tied arrays.
1497              
1498             The rough perl equivalent is C<$myarray[$idx]>.
1499             SV** av_fetch(AV *av, I32 key, I32 lval)','name' => 'av_fetch'},'SvNOK_only' => {'text' => 'Tells an SV that it is a double and disables all other OK bits.
1500              
1501             void SvNOK_only(SV* sv)','name' => 'SvNOK_only'},'hv_iterval' => {'text' => 'Returns the value from the current position of the hash iterator. See
1502             C.
1503              
1504             SV* hv_iterval(HV *hv, HE *entry)','name' => 'hv_iterval'},'is_uni_xdigit_lc' => {'text' => '','name' => 'is_uni_xdigit_lc'},'sv_reftype' => {'text' => 'Returns a string describing what the SV is a reference to.
1505              
1506             const char* sv_reftype(const SV *const sv, const int ob)','name' => 'sv_reftype'},'foldEQ_locale' => {'text' => 'Returns true if the leading len bytes of the strings s1 and s2 are the same
1507             case-insensitively in the current locale; false otherwise.
1508              
1509             I32 foldEQ_locale(const char* a, const char* b, I32 len)','name' => 'foldEQ_locale'},'cophh_2hv' => {'text' => 'Generates and returns a standard Perl hash representing the full set of
1510             key/value pairs in the cop hints hash I. I is currently
1511             unused and must be zero.
1512              
1513             NOTE: this function is experimental and may change or be
1514             removed without notice.
1515              
1516             HV * cophh_2hv(const COPHH *cophh, U32 flags)','name' => 'cophh_2hv'},'SvREFCNT_inc_simple_void_NN' => {'text' => 'Same as SvREFCNT_inc, but can only be used if you don\'t need the return
1517             value, and you know that I is not NULL. The macro doesn\'t need
1518             to return a meaningful value, or check for NULLness, so it\'s smaller
1519             and faster.
1520              
1521             void SvREFCNT_inc_simple_void_NN(SV* sv)','name' => 'SvREFCNT_inc_simple_void_NN'},'rsignal_state' => {'text' => '','name' => 'rsignal_state'},'av_len' => {'text' => 'Returns the highest index in the array. The number of elements in the
1522             array is C. Returns -1 if the array is empty.
1523              
1524             The Perl equivalent for this is C<$#myarray>.
1525              
1526             I32 av_len(AV *av)','name' => 'av_len'},'sv_unmagic' => {'text' => 'Removes all magic of type C from an SV.
1527              
1528             int sv_unmagic(SV *const sv, const int type)','name' => 'sv_unmagic'},'SvTAINT' => {'text' => 'Taints an SV if tainting is enabled.
1529              
1530             void SvTAINT(SV* sv)','name' => 'SvTAINT'},'mg_clear' => {'text' => 'Clear something magical that the SV represents. See C.
1531              
1532             int mg_clear(SV* sv)','name' => 'mg_clear'},'my_sprintf' => {'text' => 'The C library C, wrapped if necessary, to ensure that it will return
1533             the length of the string written to the buffer. Only rare pre-ANSI systems
1534             need the wrapper function - usually this is a direct call to C.
1535              
1536             int my_sprintf(char *buffer, const char *pat, ...)','name' => 'my_sprintf'},'to_utf8_fold' => {'text' => 'Convert the UTF-8 encoded character at p to its foldcase version and
1537             store that in UTF-8 in ustrp and its length in bytes in lenp. Note
1538             that the ustrp needs to be at least UTF8_MAXBYTES_CASE+1 bytes since the
1539             foldcase version may be longer than the original character (up to
1540             three characters).
1541              
1542             The first character of the foldcased version is returned
1543             (but note, as explained above, that there may be more.)
1544              
1545             UV to_utf8_fold(const U8 *p, U8* ustrp, STRLEN *lenp)','name' => 'to_utf8_fold'},'regfree_internal' => {'text' => '','name' => 'regfree_internal'},'gv_stashpv' => {'text' => 'Returns a pointer to the stash for a specified package. Uses C to
1546             determine the length of C, then calls C.
1547              
1548             HV* gv_stashpv(const char* name, I32 flags)','name' => 'gv_stashpv'},'sv_cmp_locale_flags' => {'text' => 'Compares the strings in two SVs in a locale-aware manner. Is UTF-8 and
1549             \'use bytes\' aware and will coerce its args to strings if necessary. If the
1550             flags contain SV_GMAGIC, it handles get magic. See also C.
1551              
1552             I32 sv_cmp_locale_flags(SV *const sv1, SV *const sv2, const U32 flags)','name' => 'sv_cmp_locale_flags'},'sv_vcatpvf_mg' => {'text' => 'Like C, but also handles \'set\' magic.
1553              
1554             Usually used via its frontend C.
1555              
1556             void sv_vcatpvf_mg(SV *const sv, const char *const pat, va_list *const args)','name' => 'sv_vcatpvf_mg'},'mXPUSHu' => {'text' => 'Push an unsigned integer onto the stack, extending the stack if necessary.
1557             Does not use C. See also C, C and C.
1558              
1559             void mXPUSHu(UV uv)','name' => 'mXPUSHu'},'hv_exists_ent' => {'text' => 'Returns a boolean indicating whether the specified hash key exists. C
1560             can be a valid precomputed hash value, or 0 to ask for it to be
1561             computed.
1562              
1563             bool hv_exists_ent(HV *hv, SV *keysv, U32 hash)','name' => 'hv_exists_ent'},'atfork_unlock' => {'text' => '','name' => 'atfork_unlock'},'SvNIOK' => {'text' => 'Returns a U32 value indicating whether the SV contains a number, integer or
1564             double.
1565              
1566             U32 SvNIOK(SV* sv)','name' => 'SvNIOK'},'save_long' => {'text' => '','name' => 'save_long'},'mro_method_changed_in' => {'text' => 'Invalidates method caching on any child classes
1567             of the given stash, so that they might notice
1568             the changes in this one.
1569              
1570             Ideally, all instances of C in
1571             perl source outside of C should be
1572             replaced by calls to this.
1573              
1574             Perl automatically handles most of the common
1575             ways a method might be redefined. However, there
1576             are a few ways you could change a method in a stash
1577             without the cache code noticing, in which case you
1578             need to call this method afterwards:
1579              
1580             1) Directly manipulating the stash HV entries from
1581             XS code.
1582              
1583             2) Assigning a reference to a readonly scalar
1584             constant into a stash entry in order to create
1585             a constant subroutine (like constant.pm
1586             does).
1587              
1588             This same method is available from pure perl
1589             via, C.
1590              
1591             void mro_method_changed_in(HV* stash)','name' => 'mro_method_changed_in'},'unpack_str' => {'text' => 'The engine implementing unpack() Perl function. Note: parameters strbeg, new_s
1592             and ocnt are not used. This call should not be used, use unpackstring instead.
1593              
1594             I32 unpack_str(const char *pat, const char *patend, const char *s, const char *strbeg, const char *strend, char **new_s, I32 ocnt, U32 flags)','name' => 'unpack_str'},'my_fflush_all' => {'text' => '','name' => 'my_fflush_all'},'is_uni_print' => {'text' => '','name' => 'is_uni_print'},'sv_newref' => {'text' => 'Increment an SV\'s reference count. Use the C wrapper
1595             instead.
1596              
1597             SV* sv_newref(SV *const sv)','name' => 'sv_newref'},'cop_hints_fetch_pv' => {'text' => 'Like L, but takes a nul-terminated string instead
1598             of a string/length pair.
1599              
1600             SV * cop_hints_fetch_pv(const COP *cop, const char *key, U32 hash, U32 flags)','name' => 'cop_hints_fetch_pv'},'XSRETURN_IV' => {'text' => 'Return an integer from an XSUB immediately. Uses C.
1601              
1602             void XSRETURN_IV(IV iv)','name' => 'XSRETURN_IV'},'sv_uni_display' => {'text' => 'Build to the scalar dsv a displayable version of the scalar sv,
1603             the displayable version being at most pvlim bytes long
1604             (if longer, the rest is truncated and "..." will be appended).
1605              
1606             The flags argument is as in pv_uni_display().
1607              
1608             The pointer to the PV of the dsv is returned.
1609              
1610             char* sv_uni_display(SV *dsv, SV *ssv, STRLEN pvlim, UV flags)','name' => 'sv_uni_display'},'sv_unmagicext' => {'text' => 'Removes all magic of type C with the specified C from an SV.
1611              
1612             int sv_unmagicext(SV *const sv, const int type, MGVTBL *vtbl)','name' => 'sv_unmagicext'},'newSVpvs' => {'text' => 'Like C, but takes a literal string instead of a string/length pair.
1613              
1614             SV* newSVpvs(const char* s)','name' => 'newSVpvs'},'SvREFCNT_dec' => {'text' => 'Decrements the reference count of the given SV.
1615              
1616             void SvREFCNT_dec(SV* sv)','name' => 'SvREFCNT_dec'},'realloc' => {'text' => '','name' => 'realloc'},'POPs' => {'text' => 'Pops an SV off the stack.
1617              
1618             SV* POPs','name' => 'POPs'},'packlist' => {'text' => 'The engine implementing pack() Perl function.
1619              
1620             void packlist(SV *cat, const char *pat, const char *patend, SV **beglist, SV **endlist)','name' => 'packlist'},'SvNV' => {'text' => 'Coerce the given SV to a double and return it. See C for a version
1621             which guarantees to evaluate sv only once.
1622              
1623             NV SvNV(SV* sv)','name' => 'SvNV'},'SvUTF8' => {'text' => 'Returns a U32 value indicating whether the SV contains UTF-8 encoded data.
1624             Call this after SvPV() in case any call to string overloading updates the
1625             internal flag.
1626              
1627             U32 SvUTF8(SV* sv)','name' => 'SvUTF8'},'gv_fetchmethod_autoload' => {'text' => 'Returns the glob which contains the subroutine to call to invoke the method
1628             on the C. In fact in the presence of autoloading this may be the
1629             glob for "AUTOLOAD". In this case the corresponding variable $AUTOLOAD is
1630             already setup.
1631              
1632             The third parameter of C determines whether
1633             AUTOLOAD lookup is performed if the given method is not present: non-zero
1634             means yes, look for AUTOLOAD; zero means no, don\'t look for AUTOLOAD.
1635             Calling C is equivalent to calling C
1636             with a non-zero C parameter.
1637              
1638             These functions grant C<"SUPER"> token as a prefix of the method name. Note
1639             that if you want to keep the returned glob for a long time, you need to
1640             check for it being "AUTOLOAD", since at the later time the call may load a
1641             different subroutine due to $AUTOLOAD changing its value. Use the glob
1642             created via a side effect to do this.
1643              
1644             These functions have the same side-effects and as C with
1645             C. C should be writable if contains C<\':\'> or C<\'
1646             \'\'>. The warning against passing the GV returned by C to
1647             C apply equally to these functions.
1648              
1649             GV* gv_fetchmethod_autoload(HV* stash, const char* name, I32 autoload)','name' => 'gv_fetchmethod_autoload'},'op_dump' => {'text' => '','name' => 'op_dump'},'get_mstats' => {'text' => '','name' => 'get_mstats'},'savestack_grow' => {'text' => '','name' => 'savestack_grow'},'debstackptrs' => {'text' => '','name' => 'debstackptrs'},'sv_eq' => {'text' => 'Returns a boolean indicating whether the strings in the two SVs are
1650             identical. Is UTF-8 and \'use bytes\' aware, handles get magic, and will
1651             coerce its args to strings if necessary.
1652              
1653             I32 sv_eq(SV* sv1, SV* sv2)','name' => 'sv_eq'},'SvTAINTED' => {'text' => 'Checks to see if an SV is tainted. Returns TRUE if it is, FALSE if
1654             not.
1655              
1656             bool SvTAINTED(SV* sv)','name' => 'SvTAINTED'},'ptr_table_store' => {'text' => '','name' => 'ptr_table_store'},'cv_undef' => {'text' => 'Clear out all the active components of a CV. This can happen either
1657             by an explicit C, or by the reference count going to zero.
1658             In the former case, we keep the CvOUTSIDE pointer, so that any anonymous
1659             children can still follow the full lexical scope chain.
1660              
1661             void cv_undef(CV* cv)','name' => 'cv_undef'},'StructCopy' => {'text' => 'This is an architecture-independent macro to copy one structure to another.
1662              
1663             void StructCopy(type src, type dest, type)','name' => 'StructCopy'},'sv_catpvf_nocontext' => {'text' => '','name' => 'sv_catpvf_nocontext'},'save_padsv_and_mortalize' => {'text' => '','name' => 'save_padsv_and_mortalize'},'cophh_delete_pvs' => {'text' => 'Like L, but takes a literal string instead of a
1664             string/length pair, and no precomputed hash.
1665              
1666             NOTE: this function is experimental and may change or be
1667             removed without notice.
1668              
1669             COPHH * cophh_delete_pvs(const COPHH *cophh, const char *key, U32 flags)','name' => 'cophh_delete_pvs'},'get_cvn_flags' => {'text' => 'Returns the CV of the specified Perl subroutine. C are passed to
1670             C. If C is set and the Perl subroutine does not
1671             exist then it will be declared (which has the same effect as saying
1672             C). If C is not set and the subroutine does not exist
1673             then NULL is returned.
1674              
1675             NOTE: the perl_ form of this function is deprecated.
1676              
1677             CV* get_cvn_flags(const char* name, STRLEN len, I32 flags)','name' => 'get_cvn_flags'},'XopENTRY_set' => {'text' => 'Set a member of the XOP structure. I is a cpp token indicating
1678             which entry to set. See L for details about
1679             the available members and how they are used.
1680              
1681             void XopENTRY_set(XOP *xop, which, value)','name' => 'XopENTRY_set'},'reentrant_free' => {'text' => '','name' => 'reentrant_free'},'items' => {'text' => 'Variable which is setup by C to indicate the number of
1682             items on the stack. See L.
1683              
1684             I32 items','name' => 'items'},'XST_mPV' => {'text' => 'Place a copy of a string into the specified position C on the stack.
1685             The value is stored in a new mortal SV.
1686              
1687             void XST_mPV(int pos, char* str)','name' => 'XST_mPV'},'dump_vindent' => {'text' => '','name' => 'dump_vindent'},'SvPVx' => {'text' => 'A version of C which guarantees to evaluate C only once.
1688             Only use this if C is an expression with side effects, otherwise use the
1689             more efficient C.
1690              
1691             char* SvPVx(SV* sv, STRLEN len)','name' => 'SvPVx'},'dump_form' => {'text' => '','name' => 'dump_form'},'sv_grow' => {'text' => 'Expands the character buffer in the SV. If necessary, uses C and
1692             upgrades the SV to C. Returns a pointer to the character buffer.
1693             Use the C wrapper instead.
1694              
1695             char* sv_grow(SV *const sv, STRLEN newlen)','name' => 'sv_grow'},'vnormal' => {'text' => 'Accepts a version object and returns the normalized string
1696             representation. Call like:
1697              
1698             sv = vnormal(rv);
1699              
1700             NOTE: you can pass either the object directly or the SV
1701             contained within the RV.
1702              
1703             The SV returned has a refcount of 1.
1704              
1705             SV* vnormal(SV *vs)','name' => 'vnormal'},'filter_add' => {'text' => '','name' => 'filter_add'},'newPVOP' => {'text' => 'Constructs, checks, and returns an op of any type that involves an
1706             embedded C-level pointer (PV). I is the opcode. I gives
1707             the eight bits of C. I supplies the C-level pointer, which
1708             must have been allocated using L; the memory will
1709             be freed when the op is destroyed.
1710              
1711             OP * newPVOP(I32 type, I32 flags, char *pv)','name' => 'newPVOP'},'XPUSHs' => {'text' => 'Push an SV onto the stack, extending the stack if necessary. Does not
1712             handle \'set\' magic. Does not use C. See also C,
1713             C and C.
1714              
1715             void XPUSHs(SV* sv)','name' => 'XPUSHs'},'is_uni_graph_lc' => {'text' => '','name' => 'is_uni_graph_lc'},'is_utf8_alnum' => {'text' => '','name' => 'is_utf8_alnum'},'set_numeric_radix' => {'text' => '','name' => 'set_numeric_radix'},'is_utf8_upper' => {'text' => '','name' => 'is_utf8_upper'},'newIO' => {'text' => '','name' => 'newIO'},'do_join' => {'text' => '','name' => 'do_join'},'save_helem' => {'text' => '','name' => 'save_helem'},'die' => {'text' => 'Behaves the same as L, except for the return type.
1716             It should be used only where the C return type is required.
1717             The function never actually returns.
1718              
1719             OP * die(const char *pat, ...)','name' => 'die'},'sv_usepvn' => {'text' => 'Tells an SV to use C to find its string value. Implemented by
1720             calling C with C of 0, hence does not handle \'set\'
1721             magic. See C.
1722              
1723             void sv_usepvn(SV* sv, char* ptr, STRLEN len)','name' => 'sv_usepvn'},'SvREFCNT' => {'text' => 'Returns the value of the object\'s reference count.
1724              
1725             U32 SvREFCNT(SV* sv)','name' => 'SvREFCNT'},'swash_init' => {'text' => '','name' => 'swash_init'},'newANONSUB' => {'text' => '','name' => 'newANONSUB'},'warn' => {'text' => 'This is an XS interface to Perl\'s C function.
1726              
1727             Take a sprintf-style format pattern and argument list. These are used to
1728             generate a string message. If the message does not end with a newline,
1729             then it will be extended with some indication of the current location
1730             in the code, as described for L.
1731              
1732             The error message or object will by default be written to standard error,
1733             but this is subject to modification by a C<$SIG{__WARN__}> handler.
1734              
1735             Unlike with L, C is not permitted to be null.
1736              
1737             void warn(const char *pat, ...)','name' => 'warn'},'PerlIO_get_bufsiz' => {'text' => '','name' => 'PerlIO_get_bufsiz'},'to_uni_title_lc' => {'text' => '','name' => 'to_uni_title_lc'},'fp_dup' => {'text' => '','name' => 'fp_dup'},'hek_dup' => {'text' => '','name' => 'hek_dup'},'pmop_dump' => {'text' => '','name' => 'pmop_dump'},'newANONATTRSUB' => {'text' => '','name' => 'newANONATTRSUB'},'sv_catpvf_mg_nocontext' => {'text' => '','name' => 'sv_catpvf_mg_nocontext'},'reg_named_buff_all' => {'text' => '','name' => 'reg_named_buff_all'},'PerlIO_close' => {'text' => '','name' => 'PerlIO_close'},'EXTEND' => {'text' => 'Used to extend the argument stack for an XSUB\'s return values. Once
1738             used, guarantees that there is room for at least C to be pushed
1739             onto the stack.
1740              
1741             void EXTEND(SP, int nitems)','name' => 'EXTEND'},'newOP' => {'text' => 'Constructs, checks, and returns an op of any base type (any type that
1742             has no extra fields). I is the opcode. I gives the
1743             eight bits of C, and, shifted up eight bits, the eight bits
1744             of C.
1745              
1746             OP * newOP(I32 type, I32 flags)','name' => 'newOP'},'newSVuv' => {'text' => 'Creates a new SV and copies an unsigned integer into it.
1747             The reference count for the SV is set to 1.
1748              
1749             SV* newSVuv(const UV u)','name' => 'newSVuv'},'gv_fetchmeth' => {'text' => 'Returns the glob with the given C and a defined subroutine or
1750             C. The glob lives in the given C, or in the stashes
1751             accessible via @ISA and UNIVERSAL::.
1752              
1753             The argument C should be either 0 or -1. If C, as a
1754             side-effect creates a glob with the given C in the given C
1755             which in the case of success contains an alias for the subroutine, and sets
1756             up caching info for this glob.
1757              
1758             This function grants C<"SUPER"> token as a postfix of the stash name. The
1759             GV returned from C may be a method cache entry, which is not
1760             visible to Perl code. So when calling C, you should not use
1761             the GV directly; instead, you should use the method\'s CV, which can be
1762             obtained from the GV with the C macro.
1763              
1764             GV* gv_fetchmeth(HV* stash, const char* name, STRLEN len, I32 level)','name' => 'gv_fetchmeth'},'op_refcnt_lock' => {'text' => '','name' => 'op_refcnt_lock'},'newGVgen' => {'text' => '','name' => 'newGVgen'},'sv_does' => {'text' => 'Returns a boolean indicating whether the SV performs a specific, named role.
1765             The SV can be a Perl object or the name of a Perl class.
1766              
1767             bool sv_does(SV* sv, const char *const name)','name' => 'sv_does'},'delimcpy' => {'text' => '','name' => 'delimcpy'},'newLOOPOP' => {'text' => 'Constructs, checks, and returns an op tree expressing a loop. This is
1768             only a loop in the control flow through the op tree; it does not have
1769             the heavyweight loop structure that allows exiting the loop by C
1770             and suchlike. I gives the eight bits of C for the
1771             top-level op, except that some bits will be set automatically as required.
1772             I supplies the expression controlling loop iteration, and I
1773             supplies the body of the loop; they are consumed by this function and
1774             become part of the constructed op tree. I is currently
1775             unused and should always be 1.
1776              
1777             OP * newLOOPOP(I32 flags, I32 debuggable, OP *expr, OP *block)','name' => 'newLOOPOP'},'reg_named_buff_firstkey' => {'text' => '','name' => 'reg_named_buff_firstkey'},'free_global_struct' => {'text' => '','name' => 'free_global_struct'},'uvuni_to_utf8' => {'text' => '','name' => 'uvuni_to_utf8'},'SvLEN' => {'text' => 'Returns the size of the string buffer in the SV, not including any part
1778             attributable to C. See C.
1779              
1780             STRLEN SvLEN(SV* sv)','name' => 'SvLEN'},'PerlIO_tell' => {'text' => '','name' => 'PerlIO_tell'},'SvPOK_only_UTF8' => {'text' => 'Tells an SV that it is a string and disables all other OK bits,
1781             and leaves the UTF-8 status as it was.
1782              
1783             void SvPOK_only_UTF8(SV* sv)','name' => 'SvPOK_only_UTF8'},'mg_get' => {'text' => 'Do magic after a value is retrieved from the SV. See C.
1784              
1785             int mg_get(SV* sv)','name' => 'mg_get'},'SvTRUE' => {'text' => 'Returns a boolean indicating whether Perl would evaluate the SV as true or
1786             false. See SvOK() for a defined/undefined test. Handles \'get\' magic
1787             unless the scalar is already SvPOK, SvIOK or SvNOK (the public, not the
1788             private flags).
1789              
1790             bool SvTRUE(SV* sv)','name' => 'SvTRUE'},'regdump' => {'text' => '','name' => 'regdump'},'my_pclose' => {'text' => '','name' => 'my_pclose'},'hv_iternext_flags' => {'text' => 'Returns entries from a hash iterator. See C and C.
1791             The C value will normally be zero; if HV_ITERNEXT_WANTPLACEHOLDERS is
1792             set the placeholders keys (for restricted hashes) will be returned in addition
1793             to normal keys. By default placeholders are automatically skipped over.
1794             Currently a placeholder is implemented with a value that is
1795             C<&Perl_sv_placeholder>. Note that the implementation of placeholders and
1796             restricted hashes may change, and the implementation currently is
1797             insufficiently abstracted for any change to be tidy.
1798              
1799             NOTE: this function is experimental and may change or be
1800             removed without notice.
1801              
1802             HE* hv_iternext_flags(HV *hv, I32 flags)','name' => 'hv_iternext_flags'},'is_utf8_string_loclen' => {'text' => 'Like is_utf8_string() but stores the location of the failure (in the
1803             case of "utf8ness failure") or the location s+len (in the case of
1804             "utf8ness success") in the C, and the number of UTF-8
1805             encoded characters in the C.
1806              
1807             See also is_utf8_string_loc() and is_utf8_string().
1808              
1809             bool is_utf8_string_loclen(const U8 *s, STRLEN len, const U8 **ep, STRLEN *el)','name' => 'is_utf8_string_loclen'},'call_method' => {'text' => 'Performs a callback to the specified Perl method. The blessed object must
1810             be on the stack. See L.
1811              
1812             NOTE: the perl_ form of this function is deprecated.
1813              
1814             I32 call_method(const char* methname, I32 flags)','name' => 'call_method'},'BhkENABLE' => {'text' => 'Re-enable an entry in this BHK structure, by setting the appropriate
1815             flag. I is a preprocessor token indicating which entry to enable.
1816             This will assert (under -DDEBUGGING) if the entry doesn\'t contain a valid
1817             pointer.
1818              
1819             NOTE: this function is experimental and may change or be
1820             removed without notice.
1821              
1822             void BhkENABLE(BHK *hk, which)','name' => 'BhkENABLE'},'sys_init' => {'text' => '','name' => 'sys_init'},'perl_parse' => {'text' => 'Tells a Perl interpreter to parse a Perl script. See L.
1823              
1824             int perl_parse(PerlInterpreter *my_perl, XSINIT_t xsinit, int argc, char** argv, char** env)','name' => 'perl_parse'},'av_clear' => {'text' => 'Clears an array, making it empty. Does not free the memory used by the
1825             array itself. Perl equivalent: C<@myarray = ();>.
1826              
1827             void av_clear(AV *av)','name' => 'av_clear'},'sv_force_normal' => {'text' => 'Undo various types of fakery on an SV: if the PV is a shared string, make
1828             a private copy; if we\'re a ref, stop refing; if we\'re a glob, downgrade to
1829             an xpvmg. See also C.
1830              
1831             void sv_force_normal(SV *sv)','name' => 'sv_force_normal'},'av_unshift' => {'text' => 'Unshift the given number of C values onto the beginning of the
1832             array. The array will grow automatically to accommodate the addition. You
1833             must then use C to assign values to these new elements.
1834              
1835             void av_unshift(AV *av, I32 num)','name' => 'av_unshift'},'save_set_svflags' => {'text' => '','name' => 'save_set_svflags'},'SvREFCNT_inc_NN' => {'text' => 'Same as SvREFCNT_inc, but can only be used if you know I
1836             is not NULL. Since we don\'t have to check the NULLness, it\'s faster
1837             and smaller.
1838              
1839             SV* SvREFCNT_inc_NN(SV* sv)','name' => 'SvREFCNT_inc_NN'},'sys_term' => {'text' => '','name' => 'sys_term'},'is_utf8_xidfirst' => {'text' => '','name' => 'is_utf8_xidfirst'},'re_intuit_start' => {'text' => '','name' => 're_intuit_start'},'SvUVX' => {'text' => 'Returns the raw value in the SV\'s UV slot, without checks or conversions.
1840             Only use when you are sure SvIOK is true. See also C.
1841              
1842             UV SvUVX(SV* sv)','name' => 'SvUVX'},'hv_copy_hints_hv' => {'text' => 'A specialised version of L for copying C<%^H>. I must be
1843             a pointer to a hash (which may have C<%^H> magic, but should be generally
1844             non-magical), or C (interpreted as an empty hash). The content
1845             of I is copied to a new hash, which has the C<%^H>-specific magic
1846             added to it. A pointer to the new hash is returned.
1847              
1848             HV * hv_copy_hints_hv(HV *ohv)','name' => 'hv_copy_hints_hv'},'do_pmop_dump' => {'text' => '','name' => 'do_pmop_dump'},'sv_utf8_decode' => {'text' => 'If the PV of the SV is an octet sequence in UTF-8
1849             and contains a multiple-byte character, the C flag is turned on
1850             so that it looks like a character. If the PV contains only single-byte
1851             characters, the C flag stays being off.
1852             Scans PV for validity and returns false if the PV is invalid UTF-8.
1853              
1854             NOTE: this function is experimental and may change or be
1855             removed without notice.
1856              
1857             bool sv_utf8_decode(SV *const sv)','name' => 'sv_utf8_decode'},'op_refcnt_unlock' => {'text' => '','name' => 'op_refcnt_unlock'},'hv_stores' => {'text' => 'Like C, but takes a literal string instead of a string/length pair
1858             and omits the hash parameter.
1859              
1860             SV** hv_stores(HV* tb, const char* key, NULLOK SV* val)','name' => 'hv_stores'},'eval_sv' => {'text' => 'Tells Perl to C the string in the SV. It supports the same flags
1861             as C, with the obvious exception of G_EVAL. See L.
1862              
1863             NOTE: the perl_ form of this function is deprecated.
1864              
1865             I32 eval_sv(SV* sv, I32 flags)','name' => 'eval_sv'},'SvNV_nomg' => {'text' => 'Like C but doesn\'t process magic.
1866              
1867             NV SvNV_nomg(SV* sv)','name' => 'SvNV_nomg'},'FREETMPS' => {'text' => 'Closing bracket for temporaries on a callback. See C and
1868             L.
1869              
1870             FREETMPS;','name' => 'FREETMPS'},'sv_utf8_upgrade_nomg' => {'text' => 'Like sv_utf8_upgrade, but doesn\'t do magic on C
1871              
1872             STRLEN sv_utf8_upgrade_nomg(SV *sv)','name' => 'sv_utf8_upgrade_nomg'},'sv_pvn_force' => {'text' => 'Get a sensible string out of the SV somehow.
1873             A private implementation of the C macro for compilers which
1874             can\'t cope with complex macro expressions. Always use the macro instead.
1875              
1876             char* sv_pvn_force(SV* sv, STRLEN* lp)','name' => 'sv_pvn_force'},'GIMME' => {'text' => 'A backward-compatible version of C which can only return
1877             C or C; in a void context, it returns C.
1878             Deprecated. Use C instead.
1879              
1880             U32 GIMME','name' => 'GIMME'},'my_snprintf' => {'text' => 'The C library C functionality, if available and
1881             standards-compliant (uses C, actually). However, if the
1882             C is not available, will unfortunately use the unsafe
1883             C which can overrun the buffer (there is an overrun check,
1884             but that may be too late). Consider using C instead, or
1885             getting C.
1886              
1887             int my_snprintf(char *buffer, const Size_t len, const char *format, ...)','name' => 'my_snprintf'},'newLOGOP' => {'text' => 'Constructs, checks, and returns a logical (flow control) op. I
1888             is the opcode. I gives the eight bits of C, except
1889             that C will be set automatically, and, shifted up eight bits,
1890             the eight bits of C, except that the bit with value 1 is
1891             automatically set. I supplies the expression controlling the
1892             flow, and I supplies the side (alternate) chain of ops; they are
1893             consumed by this function and become part of the constructed op tree.
1894              
1895             OP * newLOGOP(I32 type, I32 flags, OP *first, OP *other)','name' => 'newLOGOP'},'SvIOK_UV' => {'text' => 'Returns a boolean indicating whether the SV contains an unsigned integer.
1896              
1897             bool SvIOK_UV(SV* sv)','name' => 'SvIOK_UV'},'gp_ref' => {'text' => '','name' => 'gp_ref'},'save_op' => {'text' => '','name' => 'save_op'},'perl_construct' => {'text' => 'Initializes a new Perl interpreter. See L.
1898              
1899             void perl_construct(PerlInterpreter *my_perl)','name' => 'perl_construct'},'SvUOK' => {'text' => 'Returns a boolean indicating whether the SV contains an unsigned integer.
1900              
1901             bool SvUOK(SV* sv)','name' => 'SvUOK'},'newWHENOP' => {'text' => 'Constructs, checks, and returns an op tree expressing a C block.
1902             I supplies the test expression, and I supplies the block
1903             that will be executed if the test evaluates to true; they are consumed
1904             by this function and become part of the constructed op tree. I
1905             will be interpreted DWIMically, often as a comparison against C<$_>,
1906             and may be null to generate a C block.
1907              
1908             OP * newWHENOP(OP *cond, OP *block)','name' => 'newWHENOP'},'sv_dec' => {'text' => 'Auto-decrement of the value in the SV, doing string to numeric conversion
1909             if necessary. Handles \'get\' magic and operator overloading.
1910              
1911             void sv_dec(SV *const sv)','name' => 'sv_dec'},'pv_display' => {'text' => 'Similar to
1912              
1913             pv_escape(dsv,pv,cur,pvlim,PERL_PV_ESCAPE_QUOTE);
1914              
1915             except that an additional "\\0" will be appended to the string when
1916             len > cur and pv[cur] is "\\0".
1917              
1918             Note that the final string may be up to 7 chars longer than pvlim.
1919              
1920             char* pv_display(SV *dsv, const char *pv, STRLEN cur, STRLEN len, STRLEN pvlim)','name' => 'pv_display'},'newHVREF' => {'text' => '','name' => 'newHVREF'},'sv_2pvbyte_nolen' => {'text' => 'Return a pointer to the byte-encoded representation of the SV.
1921             May cause the SV to be downgraded from UTF-8 as a side-effect.
1922              
1923             Usually accessed via the C macro.
1924              
1925             char* sv_2pvbyte_nolen(SV* sv)','name' => 'sv_2pvbyte_nolen'},'is_uni_space' => {'text' => '','name' => 'is_uni_space'},'PerlIO_fileno' => {'text' => '','name' => 'PerlIO_fileno'},'uvchr_to_utf8' => {'text' => 'Adds the UTF-8 representation of the Native code point C to the end
1926             of the string C; C should be have at least C free
1927             bytes available. The return value is the pointer to the byte after the
1928             end of the new character. In other words,
1929              
1930             d = uvchr_to_utf8(d, uv);
1931              
1932             is the recommended wide native character-aware way of saying
1933              
1934             *(d++) = uv;
1935              
1936             U8* uvchr_to_utf8(U8 *d, UV uv)','name' => 'uvchr_to_utf8'},'isDIGIT' => {'text' => 'Returns a boolean indicating whether the specified character is a
1937             digit in the platform\'s native character set.
1938             Variants C and C are identical to C.
1939              
1940             bool isDIGIT(char ch)','name' => 'isDIGIT'},'call_atexit' => {'text' => '','name' => 'call_atexit'},'is_utf8_alpha' => {'text' => '','name' => 'is_utf8_alpha'},'my_bzero' => {'text' => '','name' => 'my_bzero'},'newCONSTSUB' => {'text' => 'Creates a constant sub equivalent to Perl C which is
1941             eligible for inlining at compile-time.
1942              
1943             Passing NULL for SV creates a constant sub equivalent to C,
1944             which won\'t be called if used as a destructor, but will suppress the overhead
1945             of a call to C. (This form, however, isn\'t eligible for inlining at
1946             compile time.)
1947              
1948             CV* newCONSTSUB(HV* stash, const char* name, SV* sv)','name' => 'newCONSTSUB'},'SvSHARE' => {'text' => 'Arranges for sv to be shared between threads if a suitable module
1949             has been loaded.
1950              
1951             void SvSHARE(SV* sv)','name' => 'SvSHARE'},'vwarner' => {'text' => '','name' => 'vwarner'},'sortsv' => {'text' => 'Sort an array. Here is an example:
1952              
1953             sortsv(AvARRAY(av), av_len(av)+1, Perl_sv_cmp_locale);
1954              
1955             Currently this always uses mergesort. See sortsv_flags for a more
1956             flexible routine.
1957              
1958             void sortsv(SV** array, size_t num_elts, SVCOMPARE_t cmp)','name' => 'sortsv'},'cophh_store_pvs' => {'text' => 'Like L, but takes a literal string instead of a
1959             string/length pair, and no precomputed hash.
1960              
1961             NOTE: this function is experimental and may change or be
1962             removed without notice.
1963              
1964             COPHH * cophh_store_pvs(const COPHH *cophh, const char *key, SV *value, U32 flags)','name' => 'cophh_store_pvs'},'sys_intern_clear' => {'text' => '','name' => 'sys_intern_clear'},'my_ntohl' => {'text' => '','name' => 'my_ntohl'},'doref' => {'text' => '','name' => 'doref'},'scan_bin' => {'text' => 'For backwards compatibility. Use C instead.
1965              
1966             NV scan_bin(const char* start, STRLEN len, STRLEN* retlen)','name' => 'scan_bin'},'Nullcv' => {'text' => 'Null CV pointer.
1967              
1968             (deprecated - use C<(CV *)NULL> instead)','name' => 'Nullcv'},'sv_catpvs_nomg' => {'text' => 'Like C, but takes a literal string instead of a
1969             string/length pair.
1970              
1971             void sv_catpvs_nomg(SV* sv, const char* s)','name' => 'sv_catpvs_nomg'},'lex_bufutf8' => {'text' => 'Indicates whether the octets in the lexer buffer
1972             (Llinestr>) should be interpreted as the UTF-8 encoding
1973             of Unicode characters. If not, they should be interpreted as Latin-1
1974             characters. This is analogous to the C flag for scalars.
1975              
1976             In UTF-8 mode, it is not guaranteed that the lexer buffer actually
1977             contains valid UTF-8. Lexing code must be robust in the face of invalid
1978             encoding.
1979              
1980             The actual C flag of the Llinestr> scalar
1981             is significant, but not the whole story regarding the input character
1982             encoding. Normally, when a file is being read, the scalar contains octets
1983             and its C flag is off, but the octets should be interpreted as
1984             UTF-8 if the C pragma is in effect. During a string eval,
1985             however, the scalar may have the C flag on, and in this case its
1986             octets should be interpreted as UTF-8 unless the C pragma
1987             is in effect. This logic may change in the future; use this function
1988             instead of implementing the logic yourself.
1989              
1990             NOTE: this function is experimental and may change or be
1991             removed without notice.
1992              
1993             bool lex_bufutf8()','name' => 'lex_bufutf8'},'MULTICALL' => {'text' => 'Make a lightweight callback. See L.
1994              
1995             MULTICALL;','name' => 'MULTICALL'},'debprofdump' => {'text' => '','name' => 'debprofdump'},'SvPVbyte' => {'text' => 'Like C, but converts sv to byte representation first if necessary.
1996              
1997             char* SvPVbyte(SV* sv, STRLEN len)','name' => 'SvPVbyte'},'is_uni_lower' => {'text' => '','name' => 'is_uni_lower'},'savesharedpvs' => {'text' => 'A version of C which allocates the duplicate string in memory
1998             which is shared between threads.
1999              
2000             char* savesharedpvs(const char* s)','name' => 'savesharedpvs'},'sys_init3' => {'text' => '','name' => 'sys_init3'},'PerlIO_stdout' => {'text' => '','name' => 'PerlIO_stdout'},'SAVETMPS' => {'text' => 'Opening bracket for temporaries on a callback. See C and
2001             L.
2002              
2003             SAVETMPS;','name' => 'SAVETMPS'},'AvFILL' => {'text' => 'Same as C. Deprecated, use C instead.
2004              
2005             int AvFILL(AV* av)','name' => 'AvFILL'},'ORIGMARK' => {'text' => 'The original stack mark for the XSUB. See C.','name' => 'ORIGMARK'},'SvPVutf8x' => {'text' => 'Like C, but converts sv to utf8 first if necessary.
2006             Guarantees to evaluate sv only once; use the more efficient C
2007             otherwise.
2008              
2009             char* SvPVutf8x(SV* sv, STRLEN len)','name' => 'SvPVutf8x'},'sv_2cv' => {'text' => 'Using various gambits, try to get a CV from an SV; in addition, try if
2010             possible to set C<*st> and C<*gvp> to the stash and GV associated with it.
2011             The flags in C are passed to gv_fetchsv.
2012              
2013             CV* sv_2cv(SV* sv, HV **const st, GV **const gvp, const I32 lref)','name' => 'sv_2cv'},'gp_free' => {'text' => '','name' => 'gp_free'},'SvPV_force_nomg' => {'text' => 'Like C but will force the SV into containing just a string
2014             (C). You want force if you are going to update the C
2015             directly. Doesn\'t process magic.
2016              
2017             char* SvPV_force_nomg(SV* sv, STRLEN len)','name' => 'SvPV_force_nomg'},'SvPOK_only' => {'text' => 'Tells an SV that it is a string and disables all other OK bits.
2018             Will also turn off the UTF-8 status.
2019              
2020             void SvPOK_only(SV* sv)','name' => 'SvPOK_only'},'save_destructor_x' => {'text' => '','name' => 'save_destructor_x'},'sv_usepvn_mg' => {'text' => 'Like C, but also handles \'set\' magic.
2021              
2022             void sv_usepvn_mg(SV *sv, char *ptr, STRLEN len)','name' => 'sv_usepvn_mg'},'hv_fetch' => {'text' => 'Returns the SV which corresponds to the specified key in the hash. The
2023             C is the length of the key. If C is set then the fetch will be
2024             part of a store. Check that the return value is non-null before
2025             dereferencing it to an C.
2026              
2027             See L for more
2028             information on how to use this function on tied hashes.
2029              
2030             SV** hv_fetch(HV *hv, const char *key, I32 klen, I32 lval)','name' => 'hv_fetch'},'sv_pvbyte' => {'text' => 'Use C instead.
2031              
2032             char* sv_pvbyte(SV *sv)','name' => 'sv_pvbyte'},'XCPT_TRY_START' => {'text' => 'Starts a try block. See L.','name' => 'XCPT_TRY_START'},'sv_unref_flags' => {'text' => 'Unsets the RV status of the SV, and decrements the reference count of
2033             whatever was being referenced by the RV. This can almost be thought of
2034             as a reversal of C. The C argument can contain
2035             C to force the reference count to be decremented
2036             (otherwise the decrementing is conditional on the reference count being
2037             different from one or the reference being a readonly SV).
2038             See C.
2039              
2040             void sv_unref_flags(SV *const ref, const U32 flags)','name' => 'sv_unref_flags'},'hv_scalar' => {'text' => 'Evaluates the hash in scalar context and returns the result. Handles magic when the hash is tied.
2041              
2042             SV* hv_scalar(HV *hv)','name' => 'hv_scalar'},'SvRV' => {'text' => 'Dereferences an RV to return the SV.
2043              
2044             SV* SvRV(SV* sv)','name' => 'SvRV'},'mg_copy' => {'text' => 'Copies the magic from one SV to another. See C.
2045              
2046             int mg_copy(SV *sv, SV *nsv, const char *key, I32 klen)','name' => 'mg_copy'},'save_I16' => {'text' => '','name' => 'save_I16'},'sv_rvweaken' => {'text' => 'Weaken a reference: set the C flag on this RV; give the
2047             referred-to SV C magic if it hasn\'t already; and
2048             push a back-reference to this RV onto the array of backreferences
2049             associated with that magic. If the RV is magical, set magic will be
2050             called after the RV is cleared.
2051              
2052             SV* sv_rvweaken(SV *const sv)','name' => 'sv_rvweaken'},'grok_oct' => {'text' => 'converts a string representing an octal number to numeric form.
2053              
2054             On entry I and I<*len> give the string to scan, I<*flags> gives
2055             conversion flags, and I should be NULL or a pointer to an NV.
2056             The scan stops at the end of the string, or the first invalid character.
2057             Unless C is set in I<*flags>, encountering an
2058             8 or 9 will also trigger a warning.
2059             On return I<*len> is set to the length of the scanned string,
2060             and I<*flags> gives output flags.
2061              
2062             If the value is <= UV_MAX it is returned as a UV, the output flags are clear,
2063             and nothing is written to I<*result>. If the value is > UV_MAX C
2064             returns UV_MAX, sets C in the output flags,
2065             and writes the value to I<*result> (or the value is discarded if I
2066             is NULL).
2067              
2068             If C is set in I<*flags> then the octal
2069             number may use \'_\' characters to separate digits.
2070              
2071             UV grok_oct(const char* start, STRLEN* len_p, I32* flags, NV *result)','name' => 'grok_oct'},'MARK' => {'text' => 'Stack marker variable for the XSUB. See C.','name' => 'MARK'},'newSVpvn' => {'text' => 'Creates a new SV and copies a string into it. The reference count for the
2072             SV is set to 1. Note that if C is zero, Perl will create a zero length
2073             string. You are responsible for ensuring that the source string is at least
2074             C bytes long. If the C argument is NULL the new SV will be undefined.
2075              
2076             SV* newSVpvn(const char *const s, const STRLEN len)','name' => 'newSVpvn'},'scan_hex' => {'text' => 'For backwards compatibility. Use C instead.
2077              
2078             NV scan_hex(const char* start, STRLEN len, STRLEN* retlen)','name' => 'scan_hex'},'unpackstring' => {'text' => 'The engine implementing unpack() Perl function. C puts the
2079             extracted list items on the stack and returns the number of elements.
2080             Issue C before and C after the call to this function.
2081              
2082             I32 unpackstring(const char *pat, const char *patend, const char *s, const char *strend, U32 flags)','name' => 'unpackstring'},'av_extend' => {'text' => 'Pre-extend an array. The C is the index to which the array should be
2083             extended.
2084              
2085             void av_extend(AV *av, I32 key)','name' => 'av_extend'},'sv_peek' => {'text' => '','name' => 'sv_peek'},'hv_iternext' => {'text' => 'Returns entries from a hash iterator. See C.
2086              
2087             You may call C or C on the hash entry that the
2088             iterator currently points to, without losing your place or invalidating your
2089             iterator. Note that in this case the current entry is deleted from the hash
2090             with your iterator holding the last reference to it. Your iterator is flagged
2091             to free the entry on the next call to C, so you must not discard
2092             your iterator immediately else the entry will leak - call C to
2093             trigger the resource deallocation.
2094              
2095             HE* hv_iternext(HV *hv)','name' => 'hv_iternext'},'hv_store_ent' => {'text' => 'Stores C in a hash. The hash key is specified as C. The C
2096             parameter is the precomputed hash value; if it is zero then Perl will
2097             compute it. The return value is the new hash entry so created. It will be
2098             NULL if the operation failed or if the value did not need to be actually
2099             stored within the hash (as in the case of tied hashes). Otherwise the
2100             contents of the return value can be accessed using the C macros
2101             described here. Note that the caller is responsible for suitably
2102             incrementing the reference count of C before the call, and
2103             decrementing it if the function returned NULL. Effectively a successful
2104             hv_store_ent takes ownership of one reference to C. This is
2105             usually what you want; a newly created SV has a reference count of one, so
2106             if all your code does is create SVs then store them in a hash, hv_store
2107             will own the only reference to the new SV, and your code doesn\'t need to do
2108             anything further to tidy up. Note that hv_store_ent only reads the C;
2109             unlike C it does not take ownership of it, so maintaining the correct
2110             reference count on C is entirely the caller\'s responsibility. hv_store
2111             is not implemented as a call to hv_store_ent, and does not create a temporary
2112             SV for the key, so if your key data is not already in SV form then use
2113             hv_store in preference to hv_store_ent.
2114              
2115             See L for more
2116             information on how to use this function on tied hashes.
2117              
2118             HE* hv_store_ent(HV *hv, SV *key, SV *val, U32 hash)','name' => 'hv_store_ent'},'hv_eiter_set' => {'text' => '','name' => 'hv_eiter_set'},'gv_stashsv' => {'text' => 'Returns a pointer to the stash for a specified package. See C.
2119              
2120             HV* gv_stashsv(SV* sv, I32 flags)','name' => 'gv_stashsv'},'newXSproto' => {'text' => 'Used by C to hook up XSUBs as Perl subs. Adds Perl prototypes to
2121             the subs.','name' => 'newXSproto'},'form' => {'text' => 'Takes a sprintf-style format pattern and conventional
2122             (non-SV) arguments and returns the formatted string.
2123              
2124             (char *) Perl_form(pTHX_ const char* pat, ...)
2125              
2126             can be used any place a string (char *) is required:
2127              
2128             char * s = Perl_form("%d.%d",major,minor);
2129              
2130             Uses a single private buffer so if you want to format several strings you
2131             must explicitly copy the earlier strings away (and free the copies when you
2132             are done).
2133              
2134             char* form(const char* pat, ...)','name' => 'form'},'instr' => {'text' => '','name' => 'instr'},'pregexec' => {'text' => '','name' => 'pregexec'},'is_utf8_string' => {'text' => 'Returns true if first C bytes of the given string form a valid
2135             UTF-8 string, false otherwise. If C is 0, it will be calculated
2136             using C. Note that \'a valid UTF-8 string\' does not mean \'a
2137             string that contains code points above 0x7F encoded in UTF-8\' because a
2138             valid ASCII string is a valid UTF-8 string.
2139              
2140             See also is_ascii_string(), is_utf8_string_loclen(), and is_utf8_string_loc().
2141              
2142             bool is_utf8_string(const U8 *s, STRLEN len)','name' => 'is_utf8_string'},'croak_xs_usage' => {'text' => 'A specialised variant of C for emitting the usage message for xsubs
2143              
2144             croak_xs_usage(cv, "eee_yow");
2145              
2146             works out the package name and subroutine name from C, and then calls
2147             C. Hence if C is C<&ouch::awk>, it would call C as:
2148              
2149             Perl_croak(aTHX_ "Usage: %s::%s(%s)", "ouch" "awk", "eee_yow");
2150              
2151             void croak_xs_usage(const CV *const cv, const char *const params)','name' => 'croak_xs_usage'},'sv_insert' => {'text' => 'Inserts a string at the specified offset/length within the SV. Similar to
2152             the Perl substr() function. Handles get magic.
2153              
2154             void sv_insert(SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen)','name' => 'sv_insert'},'SvPOK' => {'text' => 'Returns a U32 value indicating whether the SV contains a character
2155             string.
2156              
2157             U32 SvPOK(SV* sv)','name' => 'SvPOK'},'pad_findmy' => {'text' => 'Given a lexical name, try to find its offset, first in the current pad,
2158             or failing that, in the pads of any lexically enclosing subs (including
2159             the complications introduced by eval). If the name is found in an outer pad,
2160             then a fake entry is added to the current pad.
2161             Returns the offset in the current pad, or NOT_IN_PAD on failure.
2162              
2163             NOTE: this function is experimental and may change or be
2164             removed without notice.
2165              
2166             PADOFFSET pad_findmy(const char* name, STRLEN len, U32 flags)','name' => 'pad_findmy'},'sv_destroyable' => {'text' => 'Dummy routine which reports that object can be destroyed when there is no
2167             sharing module present. It ignores its single SV argument, and returns
2168             \'true\'. Exists to avoid test for a NULL function pointer and because it
2169             could potentially warn under some level of strict-ness.
2170              
2171             bool sv_destroyable(SV *sv)','name' => 'sv_destroyable'},'save_aelem_flags' => {'text' => '','name' => 'save_aelem_flags'},'XS' => {'text' => 'Macro to declare an XSUB and its C parameter list. This is handled by
2172             C.','name' => 'XS'},'gv_check' => {'text' => '','name' => 'gv_check'},'sv_setpvn' => {'text' => 'Copies a string into an SV. The C parameter indicates the number of
2173             bytes to be copied. If the C argument is NULL the SV will become
2174             undefined. Does not handle \'set\' magic. See C.
2175              
2176             void sv_setpvn(SV *const sv, const char *const ptr, const STRLEN len)','name' => 'sv_setpvn'},'mg_magical' => {'text' => 'Turns on the magical status of an SV. See C.
2177              
2178             void mg_magical(SV* sv)','name' => 'mg_magical'},'op_linklist' => {'text' => 'This function is the implementation of the L macro. It should
2179             not be called directly.
2180              
2181             OP* op_linklist(OP *o)','name' => 'op_linklist'},'newSVrv' => {'text' => 'Creates a new SV for the RV, C, to point to. If C is not an RV then
2182             it will be upgraded to one. If C is non-null then the new SV will
2183             be blessed in the specified package. The new SV is returned and its
2184             reference count is 1.
2185              
2186             SV* newSVrv(SV *const rv, const char *const classname)','name' => 'newSVrv'},'cast_i32' => {'text' => '','name' => 'cast_i32'},'is_utf8_posix_digit' => {'text' => '','name' => 'is_utf8_posix_digit'},'strnEQ' => {'text' => 'Test two strings to see if they are equal. The C parameter indicates
2187             the number of bytes to compare. Returns true or false. (A wrapper for
2188             C).
2189              
2190             bool strnEQ(char* s1, char* s2, STRLEN len)','name' => 'strnEQ'},'stashpv_hvname_match' => {'text' => '','name' => 'stashpv_hvname_match'},'sv_dup_inc' => {'text' => '','name' => 'sv_dup_inc'},'newMYSUB' => {'text' => '','name' => 'newMYSUB'},'PoisonWith' => {'text' => 'Fill up memory with a byte pattern (a byte repeated over and over
2191             again) that hopefully catches attempts to access uninitialized memory.
2192              
2193             void PoisonWith(void* dest, int nitems, type, U8 byte)','name' => 'PoisonWith'},'av_create_and_unshift_one' => {'text' => 'Unshifts an SV onto the beginning of the array, creating the array if
2194             necessary.
2195             A small internal helper function to remove a commonly duplicated idiom.
2196              
2197             NOTE: this function is experimental and may change or be
2198             removed without notice.
2199              
2200             SV** av_create_and_unshift_one(AV **const avp, SV *const val)','name' => 'av_create_and_unshift_one'},'SvNIOK_off' => {'text' => 'Unsets the NV/IV status of an SV.
2201              
2202             void SvNIOK_off(SV* sv)','name' => 'SvNIOK_off'},'bytes_cmp_utf8' => {'text' => 'Compares the sequence of characters (stored as octets) in b, blen with the
2203             sequence of characters (stored as UTF-8) in u, ulen. Returns 0 if they are
2204             equal, -1 or -2 if the first string is less than the second string, +1 or +2
2205             if the first string is greater than the second string.
2206              
2207             -1 or +1 is returned if the shorter string was identical to the start of the
2208             longer string. -2 or +2 is returned if the was a difference between characters
2209             within the strings.
2210              
2211             int bytes_cmp_utf8(const U8 *b, STRLEN blen, const U8 *u, STRLEN ulen)','name' => 'bytes_cmp_utf8'},'seed' => {'text' => '','name' => 'seed'},'is_uni_lower_lc' => {'text' => '','name' => 'is_uni_lower_lc'},'sv_magic' => {'text' => 'Adds magic to an SV. First upgrades C to type C if necessary,
2212             then adds a new magic item of type C to the head of the magic list.
2213              
2214             See C (which C now calls) for a description of the
2215             handling of the C and C arguments.
2216              
2217             You need to use C to add magic to SvREADONLY SVs and also
2218             to add more than one instance of the same \'how\'.
2219              
2220             void sv_magic(SV *const sv, SV *const obj, const int how, const char *const name, const I32 namlen)','name' => 'sv_magic'},'sv_utf8_upgrade_flags' => {'text' => 'Converts the PV of an SV to its UTF-8-encoded form.
2221             Forces the SV to string form if it is not already.
2222             Always sets the SvUTF8 flag to avoid future validity checks even
2223             if all the bytes are invariant in UTF-8. If C has C bit set,
2224             will C on C if appropriate, else not.
2225             Returns the number of bytes in the converted string
2226             C and
2227             C are implemented in terms of this function.
2228              
2229             This is not as a general purpose byte encoding to Unicode interface:
2230             use the Encode extension for that.
2231              
2232             STRLEN sv_utf8_upgrade_flags(SV *const sv, const I32 flags)','name' => 'sv_utf8_upgrade_flags'},'do_open9' => {'text' => '','name' => 'do_open9'},'magic_dump' => {'text' => '','name' => 'magic_dump'},'sv_catpvs_mg' => {'text' => 'Like C, but takes a literal string instead of a
2233             string/length pair.
2234              
2235             void sv_catpvs_mg(SV* sv, const char* s)','name' => 'sv_catpvs_mg'},'sv_setpvs_mg' => {'text' => 'Like C, but takes a literal string instead of a
2236             string/length pair.
2237              
2238             void sv_setpvs_mg(SV* sv, const char* s)','name' => 'sv_setpvs_mg'},'gv_fetchfile_flags' => {'text' => '','name' => 'gv_fetchfile_flags'},'SvREFCNT_inc_void' => {'text' => 'Same as SvREFCNT_inc, but can only be used if you don\'t need the
2239             return value. The macro doesn\'t need to return a meaningful value.
2240              
2241             void SvREFCNT_inc_void(SV* sv)','name' => 'SvREFCNT_inc_void'},'leave_scope' => {'text' => '','name' => 'leave_scope'},'newSTATEOP' => {'text' => 'Constructs a state op (COP). The state op is normally a C op,
2242             but will be a C op if debugging is enabled for currently-compiled
2243             code. The state op is populated from L (or L).
2244             If I
2245             the state op; this function takes ownership of the memory pointed at by
2246             I
2247             for the state op.
2248              
2249             If I is null, the state op is returned. Otherwise the state op is
2250             combined with I into a C list op, which is returned. I
2251             is consumed by this function and becomes part of the returned op tree.
2252              
2253             OP * newSTATEOP(I32 flags, char *label, OP *o)','name' => 'newSTATEOP'},'my_fork' => {'text' => '','name' => 'my_fork'},'SvROK' => {'text' => 'Tests if the SV is an RV.
2254              
2255             U32 SvROK(SV* sv)','name' => 'SvROK'},'sv_unref' => {'text' => 'Unsets the RV status of the SV, and decrements the reference count of
2256             whatever was being referenced by the RV. This can almost be thought of
2257             as a reversal of C. This is C with the C
2258             being zero. See C.
2259              
2260             void sv_unref(SV* sv)','name' => 'sv_unref'},'moreswitches' => {'text' => '','name' => 'moreswitches'},'cophh_fetch_pvs' => {'text' => 'Like L, but takes a literal string instead of a
2261             string/length pair, and no precomputed hash.
2262              
2263             NOTE: this function is experimental and may change or be
2264             removed without notice.
2265              
2266             SV * cophh_fetch_pvs(const COPHH *cophh, const char *key, U32 flags)','name' => 'cophh_fetch_pvs'},'ptr_table_fetch' => {'text' => '','name' => 'ptr_table_fetch'},'save_nogv' => {'text' => '','name' => 'save_nogv'},'sv_setnv' => {'text' => 'Copies a double into the given SV, upgrading first if necessary.
2267             Does not handle \'set\' magic. See also C.
2268              
2269             void sv_setnv(SV *const sv, const NV num)','name' => 'sv_setnv'},'is_utf8_mark' => {'text' => '','name' => 'is_utf8_mark'},'SvREFCNT_inc_simple_NN' => {'text' => 'Same as SvREFCNT_inc_simple, but can only be used if you know I
2270             is not NULL. Since we don\'t have to check the NULLness, it\'s faster
2271             and smaller.
2272              
2273             SV* SvREFCNT_inc_simple_NN(SV* sv)','name' => 'SvREFCNT_inc_simple_NN'},'newHV' => {'text' => 'Creates a new HV. The reference count is set to 1.
2274              
2275             HV* newHV()','name' => 'newHV'},'gv_dump' => {'text' => '','name' => 'gv_dump'},'strNE' => {'text' => 'Test two strings to see if they are different. Returns true or
2276             false.
2277              
2278             bool strNE(char* s1, char* s2)','name' => 'strNE'},'my_strlcpy' => {'text' => '','name' => 'my_strlcpy'},'PerlIO_fill' => {'text' => '','name' => 'PerlIO_fill'},'caller_cx' => {'text' => 'The XSUB-writer\'s equivalent of L. The
2279             returned C structure can be interrogated to find all the
2280             information returned to Perl by C. Note that XSUBs don\'t get a
2281             stack frame, so C will return information for the
2282             immediately-surrounding Perl code.
2283              
2284             This function skips over the automatic calls to C<&DB::sub> made on the
2285             behalf of the debugger. If the stack frame requested was a sub called by
2286             C, the return value will be the frame for the call to
2287             C, since that has the correct line number/etc. for the call
2288             site. If I is non-C, it will be set to a pointer to the
2289             frame for the sub call itself.
2290              
2291             const PERL_CONTEXT * caller_cx(I32 level, const PERL_CONTEXT **dbcxp)','name' => 'caller_cx'},'my_failure_exit' => {'text' => '','name' => 'my_failure_exit'},'cophh_copy' => {'text' => 'Make and return a complete copy of the cop hints hash I.
2292              
2293             NOTE: this function is experimental and may change or be
2294             removed without notice.
2295              
2296             COPHH * cophh_copy(COPHH *cophh)','name' => 'cophh_copy'},'sv_pvutf8n_force' => {'text' => 'The backend for the C macro. Always use the macro instead.
2297              
2298             char* sv_pvutf8n_force(SV *const sv, STRLEN *const lp)','name' => 'sv_pvutf8n_force'},'do_sv_dump' => {'text' => '','name' => 'do_sv_dump'},'SvNV_set' => {'text' => 'Set the value of the NV pointer in sv to val. See C.
2299              
2300             void SvNV_set(SV* sv, NV val)','name' => 'SvNV_set'},'die_sv' => {'text' => 'Behaves the same as L, except for the return type.
2301             It should be used only where the C return type is required.
2302             The function never actually returns.
2303              
2304             OP * die_sv(SV *baseex)','name' => 'die_sv'},'newAV' => {'text' => 'Creates a new AV. The reference count is set to 1.
2305              
2306             AV* newAV()','name' => 'newAV'},'bytes_from_utf8' => {'text' => 'Converts a string C of length C from UTF-8 into native byte encoding.
2307             Unlike C but like C, returns a pointer to
2308             the newly-created string, and updates C to contain the new
2309             length. Returns the original string if no conversion occurs, C
2310             is unchanged. Do nothing if C points to 0. Sets C to
2311             0 if C is converted or consisted entirely of characters that are invariant
2312             in utf8 (i.e., US-ASCII on non-EBCDIC machines).
2313              
2314             NOTE: this function is experimental and may change or be
2315             removed without notice.
2316              
2317             U8* bytes_from_utf8(const U8 *s, STRLEN *len, bool *is_utf8)','name' => 'bytes_from_utf8'},'SvPV_nomg_nolen' => {'text' => 'Like C but doesn\'t process magic.
2318              
2319             char* SvPV_nomg_nolen(SV* sv)','name' => 'SvPV_nomg_nolen'},'dump_sub' => {'text' => '','name' => 'dump_sub'},'vload_module' => {'text' => '','name' => 'vload_module'},'save_adelete' => {'text' => '','name' => 'save_adelete'},'av_make' => {'text' => 'Creates a new AV and populates it with a list of SVs. The SVs are copied
2320             into the array, so they may be freed after the call to av_make. The new AV
2321             will have a reference count of 1.
2322              
2323             Perl equivalent: C
2324              
2325             AV* av_make(I32 size, SV **strp)','name' => 'av_make'},'SvUV' => {'text' => 'Coerces the given SV to an unsigned integer and returns it. See C
2326             for a version which guarantees to evaluate sv only once.
2327              
2328             UV SvUV(SV* sv)','name' => 'SvUV'},'hv_name_set' => {'text' => '','name' => 'hv_name_set'},'cophh_store_pvn' => {'text' => 'Stores a value, associated with a key, in the cop hints hash I,
2329             and returns the modified hash. The returned hash pointer is in general
2330             not the same as the hash pointer that was passed in. The input hash is
2331             consumed by the function, and the pointer to it must not be subsequently
2332             used. Use L if you need both hashes.
2333              
2334             The key is specified by I and I. If I has the
2335             C bit set, the key octets are interpreted as UTF-8,
2336             otherwise they are interpreted as Latin-1. I is a precomputed
2337             hash of the key string, or zero if it has not been precomputed.
2338              
2339             I is the scalar value to store for this key. I is copied
2340             by this function, which thus does not take ownership of any reference
2341             to it, and later changes to the scalar will not be reflected in the
2342             value visible in the cop hints hash. Complex types of scalar will not
2343             be stored with referential integrity, but will be coerced to strings.
2344              
2345             NOTE: this function is experimental and may change or be
2346             removed without notice.
2347              
2348             COPHH * cophh_store_pvn(COPHH *cophh, const char *keypv, STRLEN keylen, U32 hash, SV *value, U32 flags)','name' => 'cophh_store_pvn'},'perl_run' => {'text' => 'Tells a Perl interpreter to run. See L.
2349              
2350             int perl_run(PerlInterpreter *my_perl)','name' => 'perl_run'},'mess_nocontext' => {'text' => '','name' => 'mess_nocontext'},'sv_insert_flags' => {'text' => 'Same as C, but the extra C are passed the C that applies to C.
2351              
2352             void sv_insert_flags(SV *const bigstr, const STRLEN offset, const STRLEN len, const char *const little, const STRLEN littlelen, const U32 flags)','name' => 'sv_insert_flags'},'OP_CLASS' => {'text' => 'Return the class of the provided OP: that is, which of the *OP
2353             structures it uses. For core ops this currently gets the information out
2354             of PL_opargs, which does not always accurately reflect the type used.
2355             For custom ops the type is returned from the registration, and it is up
2356             to the registree to ensure it is accurate. The value returned will be
2357             one of the OA_* constants from op.h.
2358              
2359             U32 OP_CLASS(OP *o)','name' => 'OP_CLASS'},'SvPVutf8_nolen' => {'text' => 'Like C, but converts sv to utf8 first if necessary.
2360              
2361             char* SvPVutf8_nolen(SV* sv)','name' => 'SvPVutf8_nolen'},'SvRXOK' => {'text' => 'Returns a boolean indicating whether the SV (or the one it references)
2362             is a REGEXP.
2363              
2364             If you want to do something with the REGEXP* later use SvRX instead
2365             and check for NULL.
2366              
2367             bool SvRXOK(SV* sv)','name' => 'SvRXOK'},'sv_dup' => {'text' => '','name' => 'sv_dup'},'sv_setpviv' => {'text' => 'Copies an integer into the given SV, also updating its string value.
2368             Does not handle \'set\' magic. See C.
2369              
2370             void sv_setpviv(SV *const sv, const IV num)','name' => 'sv_setpviv'},'sv_true' => {'text' => 'Returns true if the SV has a true value by Perl\'s rules.
2371             Use the C macro instead, which may call C or may
2372             instead use an in-line version.
2373              
2374             I32 sv_true(SV *const sv)','name' => 'sv_true'},'save_aptr' => {'text' => '','name' => 'save_aptr'},'hv_exists' => {'text' => 'Returns a boolean indicating whether the specified hash key exists. The
2375             C is the length of the key.
2376              
2377             bool hv_exists(HV *hv, const char *key, I32 klen)','name' => 'hv_exists'},'my_popen' => {'text' => '','name' => 'my_popen'},'mg_length' => {'text' => 'Report on the SV\'s length. See C.
2378              
2379             U32 mg_length(SV* sv)','name' => 'mg_length'},'vdeb' => {'text' => '','name' => 'vdeb'},'do_close' => {'text' => '','name' => 'do_close'},'newUNOP' => {'text' => 'Constructs, checks, and returns an op of any unary type. I is
2380             the opcode. I gives the eight bits of C, except that
2381             C will be set automatically if required, and, shifted up eight
2382             bits, the eight bits of C, except that the bit with value 1
2383             is automatically set. I supplies an optional op to be the direct
2384             child of the unary op; it is consumed by this function and become part
2385             of the constructed op tree.
2386              
2387             OP * newUNOP(I32 type, I32 flags, OP *first)','name' => 'newUNOP'},'mini_mktime' => {'text' => '','name' => 'mini_mktime'},'HEf_SVKEY' => {'text' => 'This flag, used in the length slot of hash entries and magic structures,
2388             specifies the structure contains an C pointer where a C pointer
2389             is to be expected. (For information only--not to be used).','name' => 'HEf_SVKEY'},'save_helem_flags' => {'text' => '','name' => 'save_helem_flags'},'newPADOP' => {'text' => 'Constructs, checks, and returns an op of any type that involves a
2390             reference to a pad element. I is the opcode. I gives the
2391             eight bits of C. A pad slot is automatically allocated, and
2392             is populated with I; this function takes ownership of one reference
2393             to it.
2394              
2395             This function only exists if Perl has been compiled to use ithreads.
2396              
2397             OP * newPADOP(I32 type, I32 flags, SV *sv)','name' => 'newPADOP'},'utf8_length' => {'text' => 'Return the length of the UTF-8 char encoded string C in characters.
2398             Stops at C (inclusive). If C s> or if the scan would end
2399             up past C, croaks.
2400              
2401             STRLEN utf8_length(const U8* s, const U8 *e)','name' => 'utf8_length'},'is_uni_cntrl' => {'text' => '','name' => 'is_uni_cntrl'},'dowantarray' => {'text' => '','name' => 'dowantarray'},'my_cxt_init' => {'text' => '','name' => 'my_cxt_init'},'SvIOK_only_UV' => {'text' => 'Tells and SV that it is an unsigned integer and disables all other OK bits.
2402              
2403             void SvIOK_only_UV(SV* sv)','name' => 'SvIOK_only_UV'},'clone_params_new' => {'text' => '','name' => 'clone_params_new'},'dump_fds' => {'text' => '','name' => 'dump_fds'},'sv_vcatpvfn' => {'text' => 'Processes its arguments like C and appends the formatted output
2404             to an SV. Uses an array of SVs if the C style variable argument list is
2405             missing (NULL). When running with taint checks enabled, indicates via
2406             C if results are untrustworthy (often due to the use of
2407             locales).
2408              
2409             Usually used via one of its frontends C and C.
2410              
2411             void sv_vcatpvfn(SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const I32 svmax, bool *const maybe_tainted)','name' => 'sv_vcatpvfn'},'BhkDISABLE' => {'text' => 'Temporarily disable an entry in this BHK structure, by clearing the
2412             appropriate flag. I is a preprocessor token indicating which
2413             entry to disable.
2414              
2415             NOTE: this function is experimental and may change or be
2416             removed without notice.
2417              
2418             void BhkDISABLE(BHK *hk, which)','name' => 'BhkDISABLE'},'croak_no_modify' => {'text' => 'Exactly equivalent to C, but generates
2419             terser object code than using C. Less code used on exception code
2420             paths reduces CPU cache pressure.
2421              
2422             void croak_no_modify()','name' => 'croak_no_modify'},'do_spawn' => {'text' => '','name' => 'do_spawn'},'share_hek' => {'text' => '','name' => 'share_hek'},'sv_pvutf8n' => {'text' => 'A private implementation of the C macro for compilers
2423             which can\'t cope with complex macro expressions. Always use the macro
2424             instead.
2425              
2426             char* sv_pvutf8n(SV *sv, STRLEN *lp)','name' => 'sv_pvutf8n'},'gv_fetchpv' => {'text' => '','name' => 'gv_fetchpv'},'newSV' => {'text' => 'Creates a new SV. A non-zero C parameter indicates the number of
2427             bytes of preallocated string space the SV should have. An extra byte for a
2428             trailing NUL is also reserved. (SvPOK is not set for the SV even if string
2429             space is allocated.) The reference count for the new SV is set to 1.
2430              
2431             In 5.9.3, newSV() replaces the older NEWSV() API, and drops the first
2432             parameter, I, a debug aid which allowed callers to identify themselves.
2433             This aid has been superseded by a new build option, PERL_MEM_LOG (see
2434             L). The older API is still there for use in XS
2435             modules supporting older perls.
2436              
2437             SV* newSV(const STRLEN len)','name' => 'newSV'},'sv_2pvutf8' => {'text' => 'Return a pointer to the UTF-8-encoded representation of the SV, and set *lp
2438             to its length. May cause the SV to be upgraded to UTF-8 as a side-effect.
2439              
2440             Usually accessed via the C macro.
2441              
2442             char* sv_2pvutf8(SV *const sv, STRLEN *const lp)','name' => 'sv_2pvutf8'},'dITEMS' => {'text' => 'Sets up the C variable.
2443             This is usually handled automatically by C by calling C.
2444              
2445             dITEMS;','name' => 'dITEMS'},'save_scalar' => {'text' => '','name' => 'save_scalar'},'newSUB' => {'text' => '','name' => 'newSUB'},'_to_utf8_fold_flags' => {'text' => '','name' => '_to_utf8_fold_flags'},'despatch_signals' => {'text' => '','name' => 'despatch_signals'},'PUTBACK' => {'text' => 'Closing bracket for XSUB arguments. This is usually handled by C.
2446             See C and L for other uses.
2447              
2448             PUTBACK;','name' => 'PUTBACK'},'dAXMARK' => {'text' => 'Sets up the C variable and stack marker variable C.
2449             This is usually handled automatically by C by calling C.
2450              
2451             dAXMARK;','name' => 'dAXMARK'},'sv_2uv_flags' => {'text' => 'Return the unsigned integer value of an SV, doing any necessary string
2452             conversion. If flags includes SV_GMAGIC, does an mg_get() first.
2453             Normally used via the C and C macros.
2454              
2455             UV sv_2uv_flags(SV *const sv, const I32 flags)','name' => 'sv_2uv_flags'},'is_uni_punct' => {'text' => '','name' => 'is_uni_punct'},'G_SCALAR' => {'text' => 'Used to indicate scalar context. See C, C, and
2456             L.','name' => 'G_SCALAR'},'SvTAINTED_off' => {'text' => 'Untaints an SV. Be I careful with this routine, as it short-circuits
2457             some of Perl\'s fundamental security features. XS module authors should not
2458             use this function unless they fully understand all the implications of
2459             unconditionally untainting the value. Untainting should be done in the
2460             standard perl fashion, via a carefully crafted regexp, rather than directly
2461             untainting variables.
2462              
2463             void SvTAINTED_off(SV* sv)','name' => 'SvTAINTED_off'},'require_pv' => {'text' => 'Tells Perl to C the file named by the string argument. It is
2464             analogous to the Perl code C. It\'s even
2465             implemented that way; consider using load_module instead.
2466              
2467             NOTE: the perl_ form of this function is deprecated.
2468              
2469             void require_pv(const char* pv)','name' => 'require_pv'},'save_hdelete' => {'text' => '','name' => 'save_hdelete'},'strEQ' => {'text' => 'Test two strings to see if they are equal. Returns true or false.
2470              
2471             bool strEQ(char* s1, char* s2)','name' => 'strEQ'},'sv_upgrade' => {'text' => 'Upgrade an SV to a more complex form. Generally adds a new body type to the
2472             SV, then copies across as much information as possible from the old body.
2473             You generally want to use the C macro wrapper. See also C.
2474              
2475             void sv_upgrade(SV *const sv, svtype new_type)','name' => 'sv_upgrade'},'safesysmalloc' => {'text' => '','name' => 'safesysmalloc'},'save_item' => {'text' => '','name' => 'save_item'},'isUPPER' => {'text' => 'Returns a boolean indicating whether the specified character is an
2476             uppercase character in the platform\'s native character set.
2477             See the L for an explanation of variants
2478             C and C.
2479              
2480             bool isUPPER(char ch)','name' => 'isUPPER'},'XopENABLE' => {'text' => 'Reenable a member of the XOP which has been disabled.
2481              
2482             void XopENABLE(XOP *xop, which)','name' => 'XopENABLE'},'lex_peek_unichar' => {'text' => 'Looks ahead one (Unicode) character in the text currently being lexed.
2483             Returns the codepoint (unsigned integer value) of the next character,
2484             or -1 if lexing has reached the end of the input text. To consume the
2485             peeked character, use L.
2486              
2487             If the next character is in (or extends into) the next chunk of input
2488             text, the next chunk will be read in. Normally the current chunk will be
2489             discarded at the same time, but if I includes C
2490             then the current chunk will not be discarded.
2491              
2492             If the input is being interpreted as UTF-8 and a UTF-8 encoding error
2493             is encountered, an exception is generated.
2494              
2495             NOTE: this function is experimental and may change or be
2496             removed without notice.
2497              
2498             I32 lex_peek_unichar(U32 flags)','name' => 'lex_peek_unichar'},'sv_setsv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
2499              
2500             void sv_setsv_mg(SV *const dstr, SV *const sstr)','name' => 'sv_setsv_mg'},'call_list' => {'text' => '','name' => 'call_list'},'croak_nocontext' => {'text' => '','name' => 'croak_nocontext'},'isLOWER' => {'text' => 'Returns a boolean indicating whether the specified character is a
2501             lowercase character in the platform\'s native character set.
2502             See the L for an explanation of variants
2503             C and C.
2504              
2505             bool isLOWER(char ch)','name' => 'isLOWER'},'hv_iterkey' => {'text' => 'Returns the key from the current position of the hash iterator. See
2506             C.
2507              
2508             char* hv_iterkey(HE* entry, I32* retlen)','name' => 'hv_iterkey'},'SvNOKp' => {'text' => 'Returns a U32 value indicating whether the SV contains a double. Checks the
2509             B setting. Use C instead.
2510              
2511             U32 SvNOKp(SV* sv)','name' => 'SvNOKp'},'nothreadhook' => {'text' => 'Stub that provides thread hook for perl_destruct when there are
2512             no threads.
2513              
2514             int nothreadhook()','name' => 'nothreadhook'},'utf8_to_uvchr' => {'text' => 'Returns the native code point of the first character in the string C
2515             which is assumed to be in UTF-8 encoding; C will be set to the
2516             length, in bytes, of that character.
2517              
2518             If C does not point to a well-formed UTF-8 character, zero is
2519             returned and retlen is set, if possible, to -1.
2520              
2521             UV utf8_to_uvchr(const U8 *s, STRLEN *retlen)','name' => 'utf8_to_uvchr'},'bytes_to_utf8' => {'text' => 'Converts a string C of length C bytes from the native encoding into
2522             UTF-8.
2523             Returns a pointer to the newly-created string, and sets C to
2524             reflect the new length in bytes.
2525              
2526             A NUL character will be written after the end of the string.
2527              
2528             If you want to convert to UTF-8 from encodings other than
2529             the native (Latin1 or EBCDIC),
2530             see sv_recode_to_utf8().
2531              
2532             NOTE: this function is experimental and may change or be
2533             removed without notice.
2534              
2535             U8* bytes_to_utf8(const U8 *s, STRLEN *len)','name' => 'bytes_to_utf8'},'SvIsCOW_shared_hash' => {'text' => 'Returns a boolean indicating whether the SV is Copy-On-Write shared hash key
2536             scalar.
2537              
2538             bool SvIsCOW_shared_hash(SV* sv)','name' => 'SvIsCOW_shared_hash'},'start_subparse' => {'text' => '','name' => 'start_subparse'},'mg_size' => {'text' => '','name' => 'mg_size'},'to_uni_lower_lc' => {'text' => '','name' => 'to_uni_lower_lc'},'mg_free_type' => {'text' => 'Remove any magic of type I from the SV I. See L.
2539              
2540             void mg_free_type(SV *sv, int how)','name' => 'mg_free_type'},'sv_catsv_nomg' => {'text' => 'Like C but doesn\'t process magic.
2541              
2542             void sv_catsv_nomg(SV* dsv, SV* ssv)','name' => 'sv_catsv_nomg'},'sv_setuv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
2543              
2544             void sv_setuv_mg(SV *const sv, const UV u)','name' => 'sv_setuv_mg'},'sys_intern_init' => {'text' => '','name' => 'sys_intern_init'},'XS_VERSION' => {'text' => 'The version identifier for an XS module. This is usually
2545             handled automatically by C. See C.','name' => 'XS_VERSION'},'fetch_cop_label' => {'text' => '','name' => 'fetch_cop_label'},'sv_setpv' => {'text' => 'Copies a string into an SV. The string must be null-terminated. Does not
2546             handle \'set\' magic. See C.
2547              
2548             void sv_setpv(SV *const sv, const char *const ptr)','name' => 'sv_setpv'},'find_rundefsvoffset' => {'text' => '','name' => 'find_rundefsvoffset'},'hv_placeholders_set' => {'text' => '','name' => 'hv_placeholders_set'},'parse_fullstmt' => {'text' => 'Parse a single complete Perl statement. This may be a normal imperative
2549             statement or a declaration that has compile-time effect, and may include
2550             optional labels. It is up to the caller to ensure that the dynamic
2551             parser state (L et al) is correctly set to reflect the source
2552             of the code to be parsed and the lexical context for the statement.
2553              
2554             The op tree representing the statement is returned. This may be a
2555             null pointer if the statement is null, for example if it was actually
2556             a subroutine definition (which has compile-time side effects). If not
2557             null, it will be the result of a L call, normally including
2558             a C or equivalent op.
2559              
2560             If an error occurs in parsing or compilation, in most cases a valid op
2561             tree (most likely null) is returned anyway. The error is reflected in
2562             the parser state, normally resulting in a single exception at the top
2563             level of parsing which covers all the compilation errors that occurred.
2564             Some compilation errors, however, will throw an exception immediately.
2565              
2566             The I parameter is reserved for future use, and must always
2567             be zero.
2568              
2569             NOTE: this function is experimental and may change or be
2570             removed without notice.
2571              
2572             OP * parse_fullstmt(U32 flags)','name' => 'parse_fullstmt'},'atfork_lock' => {'text' => '','name' => 'atfork_lock'},'gv_fetchmethod' => {'text' => 'See L.
2573              
2574             GV* gv_fetchmethod(HV* stash, const char* name)','name' => 'gv_fetchmethod'},'SvGROW' => {'text' => 'Expands the character buffer in the SV so that it has room for the
2575             indicated number of bytes (remember to reserve space for an extra trailing
2576             NUL character). Calls C to perform the expansion if necessary.
2577             Returns a pointer to the character buffer.
2578              
2579             char * SvGROW(SV* sv, STRLEN len)','name' => 'SvGROW'},'dMULTICALL' => {'text' => 'Declare local variables for a multicall. See L.
2580              
2581             dMULTICALL;','name' => 'dMULTICALL'},'sv_catpv' => {'text' => 'Concatenates the string onto the end of the string which is in the SV.
2582             If the SV has the UTF-8 status set, then the bytes appended should be
2583             valid UTF-8. Handles \'get\' magic, but not \'set\' magic. See C.
2584              
2585             void sv_catpv(SV *const sv, const char* ptr)','name' => 'sv_catpv'},'fprintf_nocontext' => {'text' => '','name' => 'fprintf_nocontext'},'sv_len' => {'text' => 'Returns the length of the string in the SV. Handles magic and type
2586             coercion. See also C, which gives raw access to the xpv_cur slot.
2587              
2588             STRLEN sv_len(SV *const sv)','name' => 'sv_len'},'PerlIO_stderr' => {'text' => '','name' => 'PerlIO_stderr'},'sv_pvutf8' => {'text' => 'Use the C macro instead
2589              
2590             char* sv_pvutf8(SV *sv)','name' => 'sv_pvutf8'},'SvPVbyte_nolen' => {'text' => 'Like C, but converts sv to byte representation first if necessary.
2591              
2592             char* SvPVbyte_nolen(SV* sv)','name' => 'SvPVbyte_nolen'},'LEAVE' => {'text' => 'Closing bracket on a callback. See C and L.
2593              
2594             LEAVE;','name' => 'LEAVE'},'mess' => {'text' => 'Take a sprintf-style format pattern and argument list. These are used to
2595             generate a string message. If the message does not end with a newline,
2596             then it will be extended with some indication of the current location
2597             in the code, as described for L.
2598              
2599             Normally, the resulting message is returned in a new mortal SV.
2600             During global destruction a single SV may be shared between uses of
2601             this function.
2602              
2603             SV * mess(const char *pat, ...)','name' => 'mess'},'SVt_PVAV' => {'text' => 'Type flag for arrays. See C.','name' => 'SVt_PVAV'},'hv_delete_ent' => {'text' => 'Deletes a key/value pair in the hash. The value SV is removed from the hash,
2604             made mortal, and returned to the caller. The C value will normally be
2605             zero; if set to G_DISCARD then NULL will be returned. NULL will also be
2606             returned if the key is not found. C can be a valid precomputed hash
2607             value, or 0 to ask for it to be computed.
2608              
2609             SV* hv_delete_ent(HV *hv, SV *keysv, I32 flags, U32 hash)','name' => 'hv_delete_ent'},'PL_keyword_plugin' => {'text' => 'Function pointer, pointing at a function used to handle extended keywords.
2610             The function should be declared as
2611              
2612             int keyword_plugin_function(pTHX_
2613             char *keyword_ptr, STRLEN keyword_len,
2614             OP **op_ptr)
2615              
2616             The function is called from the tokeniser, whenever a possible keyword
2617             is seen. C points at the word in the parser\'s input
2618             buffer, and C gives its length; it is not null-terminated.
2619             The function is expected to examine the word, and possibly other state
2620             such as L<%^H|perlvar/%^H>, to decide whether it wants to handle it
2621             as an extended keyword. If it does not, the function should return
2622             C, and the normal parser process will continue.
2623              
2624             If the function wants to handle the keyword, it first must
2625             parse anything following the keyword that is part of the syntax
2626             introduced by the keyword. See L for details.
2627              
2628             When a keyword is being handled, the plugin function must build
2629             a tree of C structures, representing the code that was parsed.
2630             The root of the tree must be stored in C<*op_ptr>. The function then
2631             returns a constant indicating the syntactic role of the construct that
2632             it has parsed: C if it is a complete statement, or
2633             C if it is an expression. Note that a statement
2634             construct cannot be used inside an expression (except via C
2635             and similar), and an expression is not a complete statement (it requires
2636             at least a terminating semicolon).
2637              
2638             When a keyword is handled, the plugin function may also have
2639             (compile-time) side effects. It may modify C<%^H>, define functions, and
2640             so on. Typically, if side effects are the main purpose of a handler,
2641             it does not wish to generate any ops to be included in the normal
2642             compilation. In this case it is still required to supply an op tree,
2643             but it suffices to generate a single null op.
2644              
2645             That\'s how the C<*PL_keyword_plugin> function needs to behave overall.
2646             Conventionally, however, one does not completely replace the existing
2647             handler function. Instead, take a copy of C before
2648             assigning your own function pointer to it. Your handler function should
2649             look for keywords that it is interested in and handle those. Where it
2650             is not interested, it should call the saved plugin function, passing on
2651             the arguments it received. Thus C actually points
2652             at a chain of handler functions, all of which have an opportunity to
2653             handle keywords, and only the last function in the chain (built into
2654             the Perl core) will normally return C.
2655              
2656             NOTE: this function is experimental and may change or be
2657             removed without notice.','name' => 'PL_keyword_plugin'},'LINKLIST' => {'text' => 'Given the root of an optree, link the tree in execution order using the
2658             C pointers and return the first op executed. If this has
2659             already been done, it will not be redone, and C<< o->op_next >> will be
2660             returned. If C<< o->op_next >> is not already set, I should be at
2661             least an C.
2662              
2663             OP* LINKLIST(OP *o)','name' => 'LINKLIST'},'cast_iv' => {'text' => '','name' => 'cast_iv'},'savesvpv' => {'text' => 'A version of C/C which gets the string to duplicate from
2664             the passed in SV using C
2665              
2666             char* savesvpv(SV* sv)','name' => 'savesvpv'},'CLASS' => {'text' => 'Variable which is setup by C to indicate the
2667             class name for a C++ XS constructor. This is always a C. See C.
2668              
2669             char* CLASS','name' => 'CLASS'},'foldEQ_latin1' => {'text' => '','name' => 'foldEQ_latin1'},'newAVREF' => {'text' => '','name' => 'newAVREF'},'HeKLEN' => {'text' => 'If this is negative, and amounts to C, it indicates the entry
2670             holds an C key. Otherwise, holds the actual length of the key. Can
2671             be assigned to. The C macro is usually preferable for finding key
2672             lengths.
2673              
2674             STRLEN HeKLEN(HE* he)','name' => 'HeKLEN'},'sv_pvn_force_flags' => {'text' => 'Get a sensible string out of the SV somehow.
2675             If C has C bit set, will C on C if
2676             appropriate, else not. C and C are
2677             implemented in terms of this function.
2678             You normally want to use the various wrapper macros instead: see
2679             C and C
2680              
2681             char* sv_pvn_force_flags(SV *const sv, STRLEN *const lp, const I32 flags)','name' => 'sv_pvn_force_flags'},'sv_setpvf_mg_nocontext' => {'text' => '','name' => 'sv_setpvf_mg_nocontext'},'parse_termexpr' => {'text' => 'Parse a Perl term expression. This may contain operators of precedence
2682             down to the assignment operators. The expression must be followed (and thus
2683             terminated) either by a comma or lower-precedence operator or by
2684             something that would normally terminate an expression such as semicolon.
2685             If I includes C then the expression is optional,
2686             otherwise it is mandatory. It is up to the caller to ensure that the
2687             dynamic parser state (L et al) is correctly set to reflect
2688             the source of the code to be parsed and the lexical context for the
2689             expression.
2690              
2691             The op tree representing the expression is returned. If an optional
2692             expression is absent, a null pointer is returned, otherwise the pointer
2693             will be non-null.
2694              
2695             If an error occurs in parsing or compilation, in most cases a valid op
2696             tree is returned anyway. The error is reflected in the parser state,
2697             normally resulting in a single exception at the top level of parsing
2698             which covers all the compilation errors that occurred. Some compilation
2699             errors, however, will throw an exception immediately.
2700              
2701             NOTE: this function is experimental and may change or be
2702             removed without notice.
2703              
2704             OP * parse_termexpr(U32 flags)','name' => 'parse_termexpr'},'mPUSHi' => {'text' => 'Push an integer onto the stack. The stack must have room for this element.
2705             Does not use C. See also C, C and C.
2706              
2707             void mPUSHi(IV iv)','name' => 'mPUSHi'},'PUSHn' => {'text' => 'Push a double onto the stack. The stack must have room for this element.
2708             Handles \'set\' magic. Uses C, so C or C should be
2709             called to declare it. Do not call multiple C-oriented macros to
2710             return lists from XSUB\'s - see C instead. See also C and
2711             C.
2712              
2713             void PUSHn(NV nv)','name' => 'PUSHn'},'to_utf8_title' => {'text' => 'Convert the UTF-8 encoded character at p to its titlecase version and
2714             store that in UTF-8 in ustrp and its length in bytes in lenp. Note
2715             that the ustrp needs to be at least UTF8_MAXBYTES_CASE+1 bytes since the
2716             titlecase version may be longer than the original character.
2717              
2718             The first character of the titlecased version is returned
2719             (but note, as explained above, that there may be more.)
2720              
2721             UV to_utf8_title(const U8 *p, U8* ustrp, STRLEN *lenp)','name' => 'to_utf8_title'},'PerlIO_unread' => {'text' => '','name' => 'PerlIO_unread'},'gv_fullname' => {'text' => '','name' => 'gv_fullname'},'PL_sv_yes' => {'text' => 'This is the C SV. See C. Always refer to this as
2722             C<&PL_sv_yes>.
2723              
2724             SV PL_sv_yes','name' => 'PL_sv_yes'},'pregfree' => {'text' => '','name' => 'pregfree'},'sv_nosharing' => {'text' => 'Dummy routine which "shares" an SV when there is no sharing module present.
2725             Or "locks" it. Or "unlocks" it. In other words, ignores its single SV argument.
2726             Exists to avoid test for a NULL function pointer and because it could
2727             potentially warn under some level of strict-ness.
2728              
2729             void sv_nosharing(SV *sv)','name' => 'sv_nosharing'},'ck_entersub_args_list' => {'text' => 'Performs the default fixup of the arguments part of an C
2730             op tree. This consists of applying list context to each of the
2731             argument ops. This is the standard treatment used on a call marked
2732             with C<&>, or a method call, or a call through a subroutine reference,
2733             or any other call where the callee can\'t be identified at compile time,
2734             or a call where the callee has no prototype.
2735              
2736             OP * ck_entersub_args_list(OP *entersubop)','name' => 'ck_entersub_args_list'},'ck_warner' => {'text' => '','name' => 'ck_warner'},'is_ascii_string' => {'text' => 'Returns true if the first C bytes of the given string are the same whether
2737             or not the string is encoded in UTF-8 (or UTF-EBCDIC on EBCDIC machines). That
2738             is, if they are invariant. On ASCII-ish machines, only ASCII characters
2739             fit this definition, hence the function\'s name.
2740              
2741             If C is 0, it will be calculated using C.
2742              
2743             See also is_utf8_string(), is_utf8_string_loclen(), and is_utf8_string_loc().
2744              
2745             bool is_ascii_string(const U8 *s, STRLEN len)','name' => 'is_ascii_string'},'SvUTF8_off' => {'text' => 'Unsets the UTF-8 status of an SV.
2746              
2747             void SvUTF8_off(SV *sv)','name' => 'SvUTF8_off'},'sv_dec_nomg' => {'text' => 'Auto-decrement of the value in the SV, doing string to numeric conversion
2748             if necessary. Handles operator overloading. Skips handling \'get\' magic.
2749              
2750             void sv_dec_nomg(SV *const sv)','name' => 'sv_dec_nomg'},'looks_like_number' => {'text' => 'Test if the content of an SV looks like a number (or is a number).
2751             C and C are treated as numbers (so will not issue a
2752             non-numeric warning), even if your atof() doesn\'t grok them.
2753              
2754             I32 looks_like_number(SV *const sv)','name' => 'looks_like_number'},'sv_catpv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
2755              
2756             void sv_catpv_mg(SV *const sv, const char *const ptr)','name' => 'sv_catpv_mg'},'save_vptr' => {'text' => '','name' => 'save_vptr'},'OP_NAME' => {'text' => 'Return the name of the provided OP. For core ops this looks up the name
2757             from the op_type; for custom ops from the op_ppaddr.
2758              
2759             const char * OP_NAME(OP *o)','name' => 'OP_NAME'},'XSRETURN_EMPTY' => {'text' => 'Return an empty list from an XSUB immediately.
2760              
2761             XSRETURN_EMPTY;','name' => 'XSRETURN_EMPTY'},'mro_get_private_data' => {'text' => '','name' => 'mro_get_private_data'},'XS_APIVERSION_BOOTCHECK' => {'text' => 'Macro to verify that the perl api version an XS module has been compiled against
2762             matches the api version of the perl interpreter it\'s being loaded into.
2763              
2764             XS_APIVERSION_BOOTCHECK;','name' => 'XS_APIVERSION_BOOTCHECK'},'hv_delayfree_ent' => {'text' => '','name' => 'hv_delayfree_ent'},'sv_setpvf' => {'text' => 'Works like C but copies the text into the SV instead of
2765             appending it. Does not handle \'set\' magic. See C.
2766              
2767             void sv_setpvf(SV *const sv, const char *const pat, ...)','name' => 'sv_setpvf'},'foldEQ_utf8_flags' => {'text' => '','name' => 'foldEQ_utf8_flags'},'custom_op_register' => {'text' => 'Register a custom op. See L.
2768              
2769             NOTE: this function must be explicitly called as Perl_custom_op_register with an aTHX_ parameter.
2770              
2771             void Perl_custom_op_register(pTHX_ Perl_ppaddr_t ppaddr, const XOP *xop)','name' => 'custom_op_register'},'scan_num' => {'text' => '','name' => 'scan_num'},'save_int' => {'text' => '','name' => 'save_int'},'call_sv' => {'text' => 'Performs a callback to the Perl sub whose name is in the SV. See
2772             L.
2773              
2774             NOTE: the perl_ form of this function is deprecated.
2775              
2776             I32 call_sv(SV* sv, VOL I32 flags)','name' => 'call_sv'},'SVt_PV' => {'text' => 'Pointer type flag for scalars. See C.','name' => 'SVt_PV'},'strGT' => {'text' => 'Test two strings to see if the first, C, is greater than the second,
2777             C. Returns true or false.
2778              
2779             bool strGT(char* s1, char* s2)','name' => 'strGT'},'is_uni_alnum' => {'text' => '','name' => 'is_uni_alnum'},'mXPUSHs' => {'text' => 'Push an SV onto the stack, extending the stack if necessary and mortalizes
2780             the SV. Does not use C. See also C and C.
2781              
2782             void mXPUSHs(SV* sv)','name' => 'mXPUSHs'},'POPl' => {'text' => 'Pops a long off the stack.
2783              
2784             long POPl','name' => 'POPl'},'init_i18nl14n' => {'text' => '','name' => 'init_i18nl14n'},'scan_version' => {'text' => 'Returns a pointer to the next character after the parsed
2785             version string, as well as upgrading the passed in SV to
2786             an RV.
2787              
2788             Function must be called with an already existing SV like
2789              
2790             sv = newSV(0);
2791             s = scan_version(s, SV *sv, bool qv);
2792              
2793             Performs some preprocessing to the string to ensure that
2794             it has the correct characteristics of a version. Flags the
2795             object if it contains an underscore (which denotes this
2796             is an alpha version). The boolean qv denotes that the version
2797             should be interpreted as if it had multiple decimals, even if
2798             it doesn\'t.
2799              
2800             const char* scan_version(const char *s, SV *rv, bool qv)','name' => 'scan_version'},'hv_common_key_len' => {'text' => '','name' => 'hv_common_key_len'},'get_cv' => {'text' => 'Uses C to get the length of C, then calls C.
2801              
2802             NOTE: the perl_ form of this function is deprecated.
2803              
2804             CV* get_cv(const char* name, I32 flags)','name' => 'get_cv'},'vnumify' => {'text' => 'Accepts a version object and returns the normalized floating
2805             point representation. Call like:
2806              
2807             sv = vnumify(rv);
2808              
2809             NOTE: you can pass either the object directly or the SV
2810             contained within the RV.
2811              
2812             The SV returned has a refcount of 1.
2813              
2814             SV* vnumify(SV *vs)','name' => 'vnumify'},'SvIOKp' => {'text' => 'Returns a U32 value indicating whether the SV contains an integer. Checks
2815             the B setting. Use C instead.
2816              
2817             U32 SvIOKp(SV* sv)','name' => 'SvIOKp'},'XST_mUNDEF' => {'text' => 'Place C<&PL_sv_undef> into the specified position C on the
2818             stack.
2819              
2820             void XST_mUNDEF(int pos)','name' => 'XST_mUNDEF'},'ptr_table_free' => {'text' => '','name' => 'ptr_table_free'},'SvUNLOCK' => {'text' => 'Releases a mutual exclusion lock on sv if a suitable module
2821             has been loaded.
2822              
2823             void SvUNLOCK(SV* sv)','name' => 'SvUNLOCK'},'mg_set' => {'text' => 'Do magic after a value is assigned to the SV. See C.
2824              
2825             int mg_set(SV* sv)','name' => 'mg_set'},'sv_mortalcopy' => {'text' => 'Creates a new SV which is a copy of the original SV (using C).
2826             The new SV is marked as mortal. It will be destroyed "soon", either by an
2827             explicit call to FREETMPS, or by an implicit call at places such as
2828             statement boundaries. See also C and C.
2829              
2830             SV* sv_mortalcopy(SV *const oldsv)','name' => 'sv_mortalcopy'},'is_utf8_space' => {'text' => '','name' => 'is_utf8_space'},'cophh_fetch_sv' => {'text' => 'Like L, but takes a Perl scalar instead of a
2831             string/length pair.
2832              
2833             NOTE: this function is experimental and may change or be
2834             removed without notice.
2835              
2836             SV * cophh_fetch_sv(const COPHH *cophh, SV *key, U32 hash, U32 flags)','name' => 'cophh_fetch_sv'},'sv_catpvn_nomg' => {'text' => 'Like C but doesn\'t process magic.
2837              
2838             void sv_catpvn_nomg(SV* sv, const char* ptr, STRLEN len)','name' => 'sv_catpvn_nomg'},'newSVpvs_flags' => {'text' => 'Like C, but takes a literal string instead of a string/length
2839             pair.
2840              
2841             SV* newSVpvs_flags(const char* s, U32 flags)','name' => 'newSVpvs_flags'},'newHVhv' => {'text' => '','name' => 'newHVhv'},'savepvn' => {'text' => 'Perl\'s version of what C would be if it existed. Returns a
2842             pointer to a newly allocated string which is a duplicate of the first
2843             C bytes from C, plus a trailing NUL byte. The memory allocated for
2844             the new string can be freed with the C function.
2845              
2846             char* savepvn(const char* pv, I32 len)','name' => 'savepvn'},'av_exists' => {'text' => 'Returns true if the element indexed by C has been initialized.
2847              
2848             This relies on the fact that uninitialized array elements are set to
2849             C<&PL_sv_undef>.
2850              
2851             Perl equivalent: C.
2852              
2853             bool av_exists(AV *av, I32 key)','name' => 'av_exists'},'cophh_delete_sv' => {'text' => 'Like L, but takes a Perl scalar instead of a
2854             string/length pair.
2855              
2856             NOTE: this function is experimental and may change or be
2857             removed without notice.
2858              
2859             COPHH * cophh_delete_sv(const COPHH *cophh, SV *key, U32 hash, U32 flags)','name' => 'cophh_delete_sv'},'SvCUR' => {'text' => 'Returns the length of the string which is in the SV. See C.
2860              
2861             STRLEN SvCUR(SV* sv)','name' => 'SvCUR'},'gv_fetchmethod_flags' => {'text' => '','name' => 'gv_fetchmethod_flags'},'sv_2nv_flags' => {'text' => 'Return the num value of an SV, doing any necessary string or integer
2862             conversion. If flags includes SV_GMAGIC, does an mg_get() first.
2863             Normally used via the C and C macros.
2864              
2865             NV sv_2nv_flags(SV *const sv, const I32 flags)','name' => 'sv_2nv_flags'},'gv_init' => {'text' => '','name' => 'gv_init'},'sv_bless' => {'text' => 'Blesses an SV into a specified package. The SV must be an RV. The package
2866             must be designated by its stash (see C). The reference count
2867             of the SV is unaffected.
2868              
2869             SV* sv_bless(SV *const sv, HV *const stash)','name' => 'sv_bless'},'cv_set_call_checker' => {'text' => 'Sets the function that will be used to fix up a call to I.
2870             Specifically, the function is applied to an C op tree for a
2871             subroutine call, not marked with C<&>, where the callee can be identified
2872             at compile time as I.
2873              
2874             The C-level function pointer is supplied in I, and an SV argument
2875             for it is supplied in I. The function is intended to be called
2876             in this manner:
2877              
2878             entersubop = ckfun(aTHX_ entersubop, namegv, ckobj);
2879              
2880             In this call, I is a pointer to the C op,
2881             which may be replaced by the check function, and I is a GV
2882             supplying the name that should be used by the check function to refer
2883             to the callee of the C op if it needs to emit any diagnostics.
2884             It is permitted to apply the check function in non-standard situations,
2885             such as to a call to a different subroutine or to a method call.
2886              
2887             The current setting for a particular CV can be retrieved by
2888             L.
2889              
2890             void cv_set_call_checker(CV *cv, Perl_call_checker ckfun, SV *ckobj)','name' => 'cv_set_call_checker'},'save_ary' => {'text' => '','name' => 'save_ary'},'sv_2io' => {'text' => 'Using various gambits, try to get an IO from an SV: the IO slot if its a
2891             GV; or the recursive result if we\'re an RV; or the IO slot of the symbol
2892             named after the PV if we\'re a string.
2893              
2894             IO* sv_2io(SV *const sv)','name' => 'sv_2io'},'newXS_flags' => {'text' => '','name' => 'newXS_flags'},'SvMAGIC_set' => {'text' => 'Set the value of the MAGIC pointer in sv to val. See C.
2895              
2896             void SvMAGIC_set(SV* sv, MAGIC* val)','name' => 'SvMAGIC_set'},'isALPHA' => {'text' => 'Returns a boolean indicating whether the specified character is an
2897             alphabetic character in the platform\'s native character set.
2898             See the L for an explanation of variants
2899             C and C.
2900              
2901             bool isALPHA(char ch)','name' => 'isALPHA'},'newSVhek' => {'text' => 'Creates a new SV from the hash key structure. It will generate scalars that
2902             point to the shared string table where possible. Returns a new (undefined)
2903             SV if the hek is NULL.
2904              
2905             SV* newSVhek(const HEK *const hek)','name' => 'newSVhek'},'taint_env' => {'text' => '','name' => 'taint_env'},'Nullhv' => {'text' => 'Null HV pointer.
2906              
2907             (deprecated - use C<(HV *)NULL> instead)','name' => 'Nullhv'},'SvREFCNT_inc' => {'text' => 'Increments the reference count of the given SV.
2908              
2909             All of the following SvREFCNT_inc* macros are optimized versions of
2910             SvREFCNT_inc, and can be replaced with SvREFCNT_inc.
2911              
2912             SV* SvREFCNT_inc(SV* sv)','name' => 'SvREFCNT_inc'},'SvTYPE' => {'text' => 'Returns the type of the SV. See C.
2913              
2914             svtype SvTYPE(SV* sv)','name' => 'SvTYPE'},'block_gimme' => {'text' => '','name' => 'block_gimme'},'SvROK_off' => {'text' => 'Unsets the RV status of an SV.
2915              
2916             void SvROK_off(SV* sv)','name' => 'SvROK_off'},'Renew' => {'text' => 'The XSUB-writer\'s interface to the C C function.
2917              
2918             void Renew(void* ptr, int nitems, type)','name' => 'Renew'},'XPUSHmortal' => {'text' => 'Push a new mortal SV onto the stack, extending the stack if necessary.
2919             Does not use C. See also C, C and C.
2920              
2921             void XPUSHmortal()','name' => 'XPUSHmortal'},'SvNOK_on' => {'text' => 'Tells an SV that it is a double.
2922              
2923             void SvNOK_on(SV* sv)','name' => 'SvNOK_on'},'SvVOK' => {'text' => 'Returns a boolean indicating whether the SV contains a v-string.
2924              
2925             bool SvVOK(SV* sv)','name' => 'SvVOK'},'sv_setpvf_mg' => {'text' => 'Like C, but also handles \'set\' magic.
2926              
2927             void sv_setpvf_mg(SV *const sv, const char *const pat, ...)','name' => 'sv_setpvf_mg'},'my_chsize' => {'text' => '','name' => 'my_chsize'},'newLISTOP' => {'text' => 'Constructs, checks, and returns an op of any list type. I is
2928             the opcode. I gives the eight bits of C, except that
2929             C will be set automatically if required. I and I
2930             supply up to two ops to be direct children of the list op; they are
2931             consumed by this function and become part of the constructed op tree.
2932              
2933             OP * newLISTOP(I32 type, I32 flags, OP *first, OP *last)','name' => 'newLISTOP'},'sv_setref_pv' => {'text' => 'Copies a pointer into a new SV, optionally blessing the SV. The C
2934             argument will be upgraded to an RV. That RV will be modified to point to
2935             the new SV. If the C argument is NULL then C will be placed
2936             into the SV. The C argument indicates the package for the
2937             blessing. Set C to C to avoid the blessing. The new SV
2938             will have a reference count of 1, and the RV will be returned.
2939              
2940             Do not use with other Perl types such as HV, AV, SV, CV, because those
2941             objects will become corrupted by the pointer copy process.
2942              
2943             Note that C copies the string while this copies the pointer.
2944              
2945             SV* sv_setref_pv(SV *const rv, const char *const classname, void *const pv)','name' => 'sv_setref_pv'},'fbm_compile' => {'text' => 'Analyses the string in order to make fast searches on it using fbm_instr()
2946             -- the Boyer-Moore algorithm.
2947              
2948             void fbm_compile(SV* sv, U32 flags)','name' => 'fbm_compile'},'SvNIOKp' => {'text' => 'Returns a U32 value indicating whether the SV contains a number, integer or
2949             double. Checks the B setting. Use C instead.
2950              
2951             U32 SvNIOKp(SV* sv)','name' => 'SvNIOKp'},'PERL_SYS_TERM' => {'text' => 'Provides system-specific clean up of the C runtime environment after
2952             running Perl interpreters. This should be called only once, after
2953             freeing any remaining Perl interpreters.
2954              
2955             void PERL_SYS_TERM()','name' => 'PERL_SYS_TERM'},'is_uni_alnum_lc' => {'text' => '','name' => 'is_uni_alnum_lc'},'mro_register' => {'text' => '','name' => 'mro_register'},'vnewSVpvf' => {'text' => '','name' => 'vnewSVpvf'},'rv2cv_op_cv' => {'text' => 'Examines an op, which is expected to identify a subroutine at runtime,
2956             and attempts to determine at compile time which subroutine it identifies.
2957             This is normally used during Perl compilation to determine whether
2958             a prototype can be applied to a function call. I is the op
2959             being considered, normally an C op. A pointer to the identified
2960             subroutine is returned, if it could be determined statically, and a null
2961             pointer is returned if it was not possible to determine statically.
2962              
2963             Currently, the subroutine can be identified statically if the RV that the
2964             C is to operate on is provided by a suitable C or C op.
2965             A C op is suitable if the GV\'s CV slot is populated. A C op is
2966             suitable if the constant value must be an RV pointing to a CV. Details of
2967             this process may change in future versions of Perl. If the C op
2968             has the C flag set then no attempt is made to identify
2969             the subroutine statically: this flag is used to suppress compile-time
2970             magic on a subroutine call, forcing it to use default runtime behaviour.
2971              
2972             If I has the bit C set, then the handling
2973             of a GV reference is modified. If a GV was examined and its CV slot was
2974             found to be empty, then the C op has the C flag set.
2975             If the op is not optimised away, and the CV slot is later populated with
2976             a subroutine having a prototype, that flag eventually triggers the warning
2977             "called too early to check prototype".
2978              
2979             If I has the bit C set, then instead
2980             of returning a pointer to the subroutine it returns a pointer to the
2981             GV giving the most appropriate name for the subroutine in this context.
2982             Normally this is just the C of the subroutine, but for an anonymous
2983             (C) subroutine that is referenced through a GV it will be the
2984             referencing GV. The resulting C is cast to C to be returned.
2985             A null pointer is returned as usual if there is no statically-determinable
2986             subroutine.
2987              
2988             CV * rv2cv_op_cv(OP *cvop, U32 flags)','name' => 'rv2cv_op_cv'},'sv_len_utf8' => {'text' => 'Returns the number of characters in the string in an SV, counting wide
2989             UTF-8 bytes as a single character. Handles magic and type coercion.
2990              
2991             STRLEN sv_len_utf8(SV *const sv)','name' => 'sv_len_utf8'},'PerlIO_set_cnt' => {'text' => '','name' => 'PerlIO_set_cnt'},'SvREFCNT_inc_simple_void' => {'text' => 'Same as SvREFCNT_inc_simple, but can only be used if you don\'t need the
2992             return value. The macro doesn\'t need to return a meaningful value.
2993              
2994             void SvREFCNT_inc_simple_void(SV* sv)','name' => 'SvREFCNT_inc_simple_void'},'cx_dup' => {'text' => '','name' => 'cx_dup'},'hv_clear_placeholders' => {'text' => 'Clears any placeholders from a hash. If a restricted hash has any of its keys
2995             marked as readonly and the key is subsequently deleted, the key is not actually
2996             deleted but is marked by assigning it a value of &PL_sv_placeholder. This tags
2997             it so it will be ignored by future operations such as iterating over the hash,
2998             but will still allow the hash to have a value reassigned to the key at some
2999             future point. This function clears any such placeholder keys from the hash.
3000             See Hash::Util::lock_keys() for an example of its use.
3001              
3002             void hv_clear_placeholders(HV *hv)','name' => 'hv_clear_placeholders'},'dAX' => {'text' => 'Sets up the C variable.
3003             This is usually handled automatically by C by calling C.
3004              
3005             dAX;','name' => 'dAX'},'SvRV_set' => {'text' => 'Set the value of the RV pointer in sv to val. See C.
3006              
3007             void SvRV_set(SV* sv, SV* val)','name' => 'SvRV_set'},'grok_number' => {'text' => 'Recognise (or not) a number. The type of the number is returned
3008             (0 if unrecognised), otherwise it is a bit-ORed combination of
3009             IS_NUMBER_IN_UV, IS_NUMBER_GREATER_THAN_UV_MAX, IS_NUMBER_NOT_INT,
3010             IS_NUMBER_NEG, IS_NUMBER_INFINITY, IS_NUMBER_NAN (defined in perl.h).
3011              
3012             If the value of the number can fit an in UV, it is returned in the *valuep
3013             IS_NUMBER_IN_UV will be set to indicate that *valuep is valid, IS_NUMBER_IN_UV
3014             will never be set unless *valuep is valid, but *valuep may have been assigned
3015             to during processing even though IS_NUMBER_IN_UV is not set on return.
3016             If valuep is NULL, IS_NUMBER_IN_UV will be set for the same cases as when
3017             valuep is non-NULL, but no actual assignment (or SEGV) will occur.
3018              
3019             IS_NUMBER_NOT_INT will be set with IS_NUMBER_IN_UV if trailing decimals were
3020             seen (in which case *valuep gives the true value truncated to an integer), and
3021             IS_NUMBER_NEG if the number is negative (in which case *valuep holds the
3022             absolute value). IS_NUMBER_IN_UV is not set if e notation was used or the
3023             number is larger than a UV.
3024              
3025             int grok_number(const char *pv, STRLEN len, UV *valuep)','name' => 'grok_number'},'csighandler' => {'text' => '','name' => 'csighandler'},'SvIVx' => {'text' => 'Coerces the given SV to an integer and returns it. Guarantees to evaluate
3026             C only once. Only use this if C is an expression with side effects,
3027             otherwise use the more efficient C.
3028              
3029             IV SvIVx(SV* sv)','name' => 'SvIVx'},'grok_numeric_radix' => {'text' => 'Scan and skip for a numeric decimal separator (radix).
3030              
3031             bool grok_numeric_radix(const char **sp, const char *send)','name' => 'grok_numeric_radix'},'XST_mNO' => {'text' => 'Place C<&PL_sv_no> into the specified position C on the
3032             stack.
3033              
3034             void XST_mNO(int pos)','name' => 'XST_mNO'},'gp_dup' => {'text' => '','name' => 'gp_dup'},'savepvs' => {'text' => 'Like C, but takes a literal string instead of a string/length pair.
3035              
3036             char* savepvs(const char* s)','name' => 'savepvs'},'SvSTASH_set' => {'text' => 'Set the value of the STASH pointer in sv to val. See C.
3037              
3038             void SvSTASH_set(SV* sv, HV* val)','name' => 'SvSTASH_set'},'sv_catpv_nomg' => {'text' => 'Like C but doesn\'t process magic.
3039              
3040             void sv_catpv_nomg(SV* sv, const char* ptr)','name' => 'sv_catpv_nomg'},'ZeroD' => {'text' => 'Like C but returns dest. Useful for encouraging compilers to tail-call
3041             optimise.
3042              
3043             void * ZeroD(void* dest, int nitems, type)','name' => 'ZeroD'},'sv_collxfrm' => {'text' => 'This calls C with the SV_GMAGIC flag. See
3044             C.
3045              
3046             char* sv_collxfrm(SV *const sv, STRLEN *const nxp)','name' => 'sv_collxfrm'},'swash_fetch' => {'text' => '','name' => 'swash_fetch'},'SP' => {'text' => 'Stack pointer. This is usually handled by C. See C and
3047             C.','name' => 'SP'},'sv_catpvn_mg' => {'text' => 'Like C, but also handles \'set\' magic.
3048              
3049             void sv_catpvn_mg(SV *sv, const char *ptr, STRLEN len)','name' => 'sv_catpvn_mg'},'op_lvalue' => {'text' => 'Propagate lvalue ("modifiable") context to an op and its children.
3050             I represents the context type, roughly based on the type of op that
3051             would do the modifying, although C is represented by OP_NULL,
3052             because it has no op type of its own (it is signalled by a flag on
3053             the lvalue op).
3054              
3055             This function detects things that can\'t be modified, such as C<$x+1>, and
3056             generates errors for them. For example, C<$x+1 = 2> would cause it to be
3057             called with an op of type OP_ADD and a C argument of OP_SASSIGN.
3058              
3059             It also flags things that need to behave specially in an lvalue context,
3060             such as C<$$x = 5> which might have to vivify a reference in C<$x>.
3061              
3062             NOTE: this function is experimental and may change or be
3063             removed without notice.
3064              
3065             OP * op_lvalue(OP *o, I32 type)','name' => 'op_lvalue'},'dirp_dup' => {'text' => '','name' => 'dirp_dup'},'is_uni_upper' => {'text' => '','name' => 'is_uni_upper'},'gv_stashpvs' => {'text' => 'Like C, but takes a literal string instead of a string/length pair.
3066              
3067             HV* gv_stashpvs(const char* name, I32 create)','name' => 'gv_stashpvs'},'Zero' => {'text' => 'The XSUB-writer\'s interface to the C C function. The C is the
3068             destination, C is the number of items, and C is the type.
3069              
3070             void Zero(void* dest, int nitems, type)','name' => 'Zero'},'vcmp' => {'text' => 'Version object aware cmp. Both operands must already have been
3071             converted into version objects.
3072              
3073             int vcmp(SV *lhv, SV *rhv)','name' => 'vcmp'},'SvSTASH' => {'text' => 'Returns the stash of the SV.
3074              
3075             HV* SvSTASH(SV* sv)','name' => 'SvSTASH'},'XSRETURN_UNDEF' => {'text' => 'Return C<&PL_sv_undef> from an XSUB immediately. Uses C.
3076              
3077             XSRETURN_UNDEF;','name' => 'XSRETURN_UNDEF'},'sv_iv' => {'text' => 'A private implementation of the C macro for compilers which can\'t
3078             cope with complex macro expressions. Always use the macro instead.
3079              
3080             IV sv_iv(SV* sv)','name' => 'sv_iv'},'PL_parser-Ebufend' => {'text' => 'Direct pointer to the end of the chunk of text currently being lexed, the
3081             end of the lexer buffer. This is equal to Clinestr)
3082             + SvCUR(PL_parser-Elinestr)>. A NUL character (zero octet) is
3083             always located at the end of the buffer, and does not count as part of
3084             the buffer\'s contents.
3085              
3086             NOTE: this function is experimental and may change or be
3087             removed without notice.','name' => 'PL_parser-Ebufend'},'PerlIO_error' => {'text' => '','name' => 'PerlIO_error'},'is_utf8_graph' => {'text' => '','name' => 'is_utf8_graph'},'pv_escape' => {'text' => 'Escapes at most the first "count" chars of pv and puts the results into
3088             dsv such that the size of the escaped string will not exceed "max" chars
3089             and will not contain any incomplete escape sequences.
3090              
3091             If flags contains PERL_PV_ESCAPE_QUOTE then any double quotes in the string
3092             will also be escaped.
3093              
3094             Normally the SV will be cleared before the escaped string is prepared,
3095             but when PERL_PV_ESCAPE_NOCLEAR is set this will not occur.
3096              
3097             If PERL_PV_ESCAPE_UNI is set then the input string is treated as Unicode,
3098             if PERL_PV_ESCAPE_UNI_DETECT is set then the input string is scanned
3099             using C to determine if it is Unicode.
3100              
3101             If PERL_PV_ESCAPE_ALL is set then all input chars will be output
3102             using C<\\x01F1> style escapes, otherwise if PERL_PV_ESCAPE_NONASCII is set, only
3103             chars above 127 will be escaped using this style; otherwise, only chars above
3104             255 will be so escaped; other non printable chars will use octal or
3105             common escaped patterns like C<\\n>. Otherwise, if PERL_PV_ESCAPE_NOBACKSLASH
3106             then all chars below 255 will be treated as printable and
3107             will be output as literals.
3108              
3109             If PERL_PV_ESCAPE_FIRSTCHAR is set then only the first char of the
3110             string will be escaped, regardless of max. If the output is to be in hex,
3111             then it will be returned as a plain hex
3112             sequence. Thus the output will either be a single char,
3113             an octal escape sequence, a special escape like C<\\n> or a hex value.
3114              
3115             If PERL_PV_ESCAPE_RE is set then the escape char used will be a \'%\' and
3116             not a \'\\\\\'. This is because regexes very often contain backslashed
3117             sequences, whereas \'%\' is not a particularly common character in patterns.
3118              
3119             Returns a pointer to the escaped text as held by dsv.
3120              
3121             char* pv_escape(SV *dsv, char const * const str, const STRLEN count, const STRLEN max, STRLEN * const escaped, const U32 flags)','name' => 'pv_escape'},'HeSVKEY_force' => {'text' => 'Returns the key as an C. Will create and return a temporary mortal
3122             C if the hash entry contains only a C key.
3123              
3124             SV* HeSVKEY_force(HE* he)','name' => 'HeSVKEY_force'},'my_exit' => {'text' => '','name' => 'my_exit'},'newRV_inc' => {'text' => 'Creates an RV wrapper for an SV. The reference count for the original SV is
3125             incremented.
3126              
3127             SV* newRV_inc(SV* sv)','name' => 'newRV_inc'},'SVt_PVCV' => {'text' => 'Type flag for code refs. See C.','name' => 'SVt_PVCV'},'ss_dup' => {'text' => '','name' => 'ss_dup'},'gv_handler' => {'text' => '','name' => 'gv_handler'},'sv_setpviv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
3128              
3129             void sv_setpviv_mg(SV *const sv, const IV iv)','name' => 'sv_setpviv_mg'},'debstack' => {'text' => '','name' => 'debstack'},'sv_2bool' => {'text' => 'This macro is only used by sv_true() or its macro equivalent, and only if
3130             the latter\'s argument is neither SvPOK, SvIOK nor SvNOK.
3131             It calls sv_2bool_flags with the SV_GMAGIC flag.
3132              
3133             bool sv_2bool(SV *const sv)','name' => 'sv_2bool'},'lex_grow_linestr' => {'text' => 'Reallocates the lexer buffer (Llinestr>) to accommodate
3134             at least I octets (including terminating NUL). Returns a
3135             pointer to the reallocated buffer. This is necessary before making
3136             any direct modification of the buffer that would increase its length.
3137             L provides a more convenient way to insert text into
3138             the buffer.
3139              
3140             Do not use C or C directly on Clinestr>;
3141             this function updates all of the lexer\'s variables that point directly
3142             into the buffer.
3143              
3144             NOTE: this function is experimental and may change or be
3145             removed without notice.
3146              
3147             char * lex_grow_linestr(STRLEN len)','name' => 'lex_grow_linestr'},'dORIGMARK' => {'text' => 'Saves the original stack mark for the XSUB. See C.
3148              
3149             dORIGMARK;','name' => 'dORIGMARK'},'sv_inc_nomg' => {'text' => 'Auto-increment of the value in the SV, doing string to numeric conversion
3150             if necessary. Handles operator overloading. Skips handling \'get\' magic.
3151              
3152             void sv_inc_nomg(SV *const sv)','name' => 'sv_inc_nomg'},'sv_newmortal' => {'text' => 'Creates a new null SV which is mortal. The reference count of the SV is
3153             set to 1. It will be destroyed "soon", either by an explicit call to
3154             FREETMPS, or by an implicit call at places such as statement boundaries.
3155             See also C and C.
3156              
3157             SV* sv_newmortal()','name' => 'sv_newmortal'},'is_utf8_cntrl' => {'text' => '','name' => 'is_utf8_cntrl'},'SvPV_set' => {'text' => 'Set the value of the PV pointer in sv to val. See C.
3158              
3159             void SvPV_set(SV* sv, char* val)','name' => 'SvPV_set'},'SvOOK' => {'text' => 'Returns a U32 indicating whether the pointer to the string buffer is offset.
3160             This hack is used internally to speed up removal of characters from the
3161             beginning of a SvPV. When SvOOK is true, then the start of the
3162             allocated string buffer is actually C bytes before SvPVX.
3163             This offset used to be stored in SvIVX, but is now stored within the spare
3164             part of the buffer.
3165              
3166             U32 SvOOK(SV* sv)','name' => 'SvOOK'},'mess_sv' => {'text' => 'Expands a message, intended for the user, to include an indication of
3167             the current location in the code, if the message does not already appear
3168             to be complete.
3169              
3170             C is the initial message or object. If it is a reference, it
3171             will be used as-is and will be the result of this function. Otherwise it
3172             is used as a string, and if it already ends with a newline, it is taken
3173             to be complete, and the result of this function will be the same string.
3174             If the message does not end with a newline, then a segment such as C
3175             foo.pl line 37> will be appended, and possibly other clauses indicating
3176             the current state of execution. The resulting message will end with a
3177             dot and a newline.
3178              
3179             Normally, the resulting message is returned in a new mortal SV.
3180             During global destruction a single SV may be shared between uses of this
3181             function. If C is true, then the function is permitted (but not
3182             required) to modify and return C instead of allocating a new SV.
3183              
3184             SV * mess_sv(SV *basemsg, bool consume)','name' => 'mess_sv'},'is_utf8_xidcont' => {'text' => '','name' => 'is_utf8_xidcont'},'hv_clear' => {'text' => 'Clears a hash, making it empty.
3185              
3186             void hv_clear(HV *hv)','name' => 'hv_clear'},'get_hv' => {'text' => 'Returns the HV of the specified Perl hash. C are passed to
3187             C. If C is set and the
3188             Perl variable does not exist then it will be created. If C is zero
3189             and the variable does not exist then NULL is returned.
3190              
3191             NOTE: the perl_ form of this function is deprecated.
3192              
3193             HV* get_hv(const char *name, I32 flags)','name' => 'get_hv'},'safesysrealloc' => {'text' => '','name' => 'safesysrealloc'},'XSRETURN_YES' => {'text' => 'Return C<&PL_sv_yes> from an XSUB immediately. Uses C.
3194              
3195             XSRETURN_YES;','name' => 'XSRETURN_YES'},'PoisonNew' => {'text' => 'PoisonWith(0xAB) for catching access to allocated but uninitialized memory.
3196              
3197             void PoisonNew(void* dest, int nitems, type)','name' => 'PoisonNew'},'op_scope' => {'text' => 'Wraps up an op tree with some additional ops so that at runtime a dynamic
3198             scope will be created. The original ops run in the new dynamic scope,
3199             and then, provided that they exit normally, the scope will be unwound.
3200             The additional ops used to create and unwind the dynamic scope will
3201             normally be an C/C pair, but a C op may be used
3202             instead if the ops are simple enough to not need the full dynamic scope
3203             structure.
3204              
3205             NOTE: this function is experimental and may change or be
3206             removed without notice.
3207              
3208             OP * op_scope(OP *o)','name' => 'op_scope'},'Renewc' => {'text' => 'The XSUB-writer\'s interface to the C C function, with
3209             cast.
3210              
3211             void Renewc(void* ptr, int nitems, type, cast)','name' => 'Renewc'},'sv_nv' => {'text' => 'A private implementation of the C macro for compilers which can\'t
3212             cope with complex macro expressions. Always use the macro instead.
3213              
3214             NV sv_nv(SV* sv)','name' => 'sv_nv'},'SvPOK_off' => {'text' => 'Unsets the PV status of an SV.
3215              
3216             void SvPOK_off(SV* sv)','name' => 'SvPOK_off'},'PUSHu' => {'text' => 'Push an unsigned integer onto the stack. The stack must have room for this
3217             element. Handles \'set\' magic. Uses C, so C or C
3218             should be called to declare it. Do not call multiple C-oriented
3219             macros to return lists from XSUB\'s - see C instead. See also
3220             C and C.
3221              
3222             void PUSHu(UV uv)','name' => 'PUSHu'},'newSVsv' => {'text' => 'Creates a new SV which is an exact duplicate of the original SV.
3223             (Uses C).
3224              
3225             SV* newSVsv(SV *const old)','name' => 'newSVsv'},'hv_magic' => {'text' => 'Adds magic to a hash. See C.
3226              
3227             void hv_magic(HV *hv, GV *gv, int how)','name' => 'hv_magic'},'deb_nocontext' => {'text' => '','name' => 'deb_nocontext'},'new_stackinfo' => {'text' => '','name' => 'new_stackinfo'},'save_aelem' => {'text' => '','name' => 'save_aelem'},'PerlIO_clearerr' => {'text' => '','name' => 'PerlIO_clearerr'},'cx_dump' => {'text' => '','name' => 'cx_dump'},'hv_placeholders_p' => {'text' => '','name' => 'hv_placeholders_p'},'XCPT_TRY_END' => {'text' => 'Ends a try block. See L.','name' => 'XCPT_TRY_END'},'HeKEY' => {'text' => 'Returns the actual pointer stored in the key slot of the hash entry. The
3228             pointer may be either C or C, depending on the value of
3229             C. Can be assigned to. The C or C macros are
3230             usually preferable for finding the value of a key.
3231              
3232             void* HeKEY(HE* he)','name' => 'HeKEY'},'SvEND' => {'text' => 'Returns a pointer to the last character in the string which is in the SV.
3233             See C. Access the character as *(SvEND(sv)).
3234              
3235             char* SvEND(SV* sv)','name' => 'SvEND'},'save_delete' => {'text' => '','name' => 'save_delete'},'GIMME_V' => {'text' => 'The XSUB-writer\'s equivalent to Perl\'s C. Returns C,
3236             C or C for void, scalar or list context,
3237             respectively. See L for a usage example.
3238              
3239             U32 GIMME_V','name' => 'GIMME_V'},'re_compile' => {'text' => '','name' => 're_compile'},'sv_setsv_flags' => {'text' => 'Copies the contents of the source SV C into the destination SV
3240             C. The source SV may be destroyed if it is mortal, so don\'t use this
3241             function if the source SV needs to be reused. Does not handle \'set\' magic.
3242             Loosely speaking, it performs a copy-by-value, obliterating any previous
3243             content of the destination.
3244             If the C parameter has the C bit set, will C on
3245             C if appropriate, else not. If the C parameter has the
3246             C bit set then the buffers of temps will not be stolen.
3247             and C are implemented in terms of this function.
3248              
3249             You probably want to use one of the assortment of wrappers, such as
3250             C, C, C and
3251             C.
3252              
3253             This is the primary function for copying scalars, and most other
3254             copy-ish functions and macros use this underneath.
3255              
3256             void sv_setsv_flags(SV *dstr, SV *sstr, const I32 flags)','name' => 'sv_setsv_flags'},'newATTRSUB' => {'text' => '','name' => 'newATTRSUB'},'Copy' => {'text' => 'The XSUB-writer\'s interface to the C C function. The C is the
3257             source, C is the destination, C is the number of items, and C is
3258             the type. May fail on overlapping copies. See also C.
3259              
3260             void Copy(void* src, void* dest, int nitems, type)','name' => 'Copy'},'newSVpv_share' => {'text' => 'Like C, but takes a nul-terminated string instead of a
3261             string/length pair.
3262              
3263             SV* newSVpv_share(const char* s, U32 hash)','name' => 'newSVpv_share'},'sv_taint' => {'text' => 'Taint an SV. Use C instead.
3264             void sv_taint(SV* sv)','name' => 'sv_taint'},'utf16_to_utf8' => {'text' => '','name' => 'utf16_to_utf8'},'SvIOK_notUV' => {'text' => 'Returns a boolean indicating whether the SV contains a signed integer.
3265              
3266             bool SvIOK_notUV(SV* sv)','name' => 'SvIOK_notUV'},'deb' => {'text' => '','name' => 'deb'},'PL_parser-Elinestart' => {'text' => 'Points to the start of the current line inside the lexer buffer.
3267             This is useful for indicating at which column an error occurred, and
3268             not much else. This must be updated by any lexing code that consumes
3269             a newline; the function L handles this detail.
3270              
3271             NOTE: this function is experimental and may change or be
3272             removed without notice.','name' => 'PL_parser-Elinestart'},'he_dup' => {'text' => '','name' => 'he_dup'},'gv_fullname3' => {'text' => '','name' => 'gv_fullname3'},'mPUSHu' => {'text' => 'Push an unsigned integer onto the stack. The stack must have room for this
3273             element. Does not use C. See also C, C and C.
3274              
3275             void mPUSHu(UV uv)','name' => 'mPUSHu'},'cophh_new_empty' => {'text' => 'Generate and return a fresh cop hints hash containing no entries.
3276              
3277             NOTE: this function is experimental and may change or be
3278             removed without notice.
3279              
3280             COPHH * cophh_new_empty()','name' => 'cophh_new_empty'},'op_append_list' => {'text' => 'Concatenate the lists of ops contained directly within two list-type ops,
3281             returning the combined list. I and I are the list-type ops
3282             to concatenate. I specifies the intended opcode for the list.
3283             If either I or I is not already a list of the right type,
3284             it will be upgraded into one. If either I or I is null,
3285             the other is returned unchanged.
3286              
3287             OP * op_append_list(I32 optype, OP *first, OP *last)','name' => 'op_append_list'},'repeatcpy' => {'text' => '','name' => 'repeatcpy'},'do_spawn_nowait' => {'text' => '','name' => 'do_spawn_nowait'},'sv_setsv_nomg' => {'text' => 'Like C but doesn\'t process magic.
3288              
3289             void sv_setsv_nomg(SV* dsv, SV* ssv)','name' => 'sv_setsv_nomg'},'load_module_nocontext' => {'text' => '','name' => 'load_module_nocontext'},'re_intuit_string' => {'text' => '','name' => 're_intuit_string'},'do_magic_dump' => {'text' => '','name' => 'do_magic_dump'},'XPUSHp' => {'text' => 'Push a string onto the stack, extending the stack if necessary. The C
3290             indicates the length of the string. Handles \'set\' magic. Uses C, so
3291             C or C should be called to declare it. Do not call
3292             multiple C-oriented macros to return lists from XSUB\'s - see
3293             C instead. See also C and C.
3294              
3295             void XPUSHp(char* str, STRLEN len)','name' => 'XPUSHp'},'av_create_and_push' => {'text' => 'Push an SV onto the end of the array, creating the array if necessary.
3296             A small internal helper function to remove a commonly duplicated idiom.
3297              
3298             NOTE: this function is experimental and may change or be
3299             removed without notice.
3300              
3301             void av_create_and_push(AV **const avp, SV *const val)','name' => 'av_create_and_push'},'sv_utf8_encode' => {'text' => 'Converts the PV of an SV to UTF-8, but then turns the C
3302             flag off so that it looks like octets again.
3303              
3304             void sv_utf8_encode(SV *const sv)','name' => 'sv_utf8_encode'},'SvUTF8_on' => {'text' => 'Turn on the UTF-8 status of an SV (the data is not changed, just the flag).
3305             Do not use frivolously.
3306              
3307             void SvUTF8_on(SV *sv)','name' => 'SvUTF8_on'},'sv_setpvn_mg' => {'text' => 'Like C, but also handles \'set\' magic.
3308              
3309             void sv_setpvn_mg(SV *const sv, const char *const ptr, const STRLEN len)','name' => 'sv_setpvn_mg'},'toLOWER' => {'text' => 'Converts the specified character to lowercase in the platform\'s native
3310             character set, if possible; otherwise returns the input character itself.
3311              
3312             char toLOWER(char ch)','name' => 'toLOWER'},'av_iter_p' => {'text' => '','name' => 'av_iter_p'},'prescan_version' => {'text' => 'Validate that a given string can be parsed as a version object, but doesn\'t
3313             actually perform the parsing. Can use either strict or lax validation rules.
3314             Can optionally set a number of hint variables to save the parsing code
3315             some time when tokenizing.
3316              
3317             const char* prescan_version(const char *s, bool strict, const char** errstr, bool *sqv, int *ssaw_decimal, int *swidth, bool *salpha)','name' => 'prescan_version'},'PerlIO_write' => {'text' => '','name' => 'PerlIO_write'},'hv_ksplit' => {'text' => '','name' => 'hv_ksplit'},'new_version' => {'text' => 'Returns a new version object based on the passed in SV:
3318              
3319             SV *sv = new_version(SV *ver);
3320              
3321             Does not alter the passed in ver SV. See "upg_version" if you
3322             want to upgrade the SV.
3323              
3324             SV* new_version(SV *ver)','name' => 'new_version'},'PerlIO_seek' => {'text' => '','name' => 'PerlIO_seek'},'free_tmps' => {'text' => '','name' => 'free_tmps'},'parse_arithexpr' => {'text' => 'Parse a Perl arithmetic expression. This may contain operators of precedence
3325             down to the bit shift operators. The expression must be followed (and thus
3326             terminated) either by a comparison or lower-precedence operator or by
3327             something that would normally terminate an expression such as semicolon.
3328             If I includes C then the expression is optional,
3329             otherwise it is mandatory. It is up to the caller to ensure that the
3330             dynamic parser state (L et al) is correctly set to reflect
3331             the source of the code to be parsed and the lexical context for the
3332             expression.
3333              
3334             The op tree representing the expression is returned. If an optional
3335             expression is absent, a null pointer is returned, otherwise the pointer
3336             will be non-null.
3337              
3338             If an error occurs in parsing or compilation, in most cases a valid op
3339             tree is returned anyway. The error is reflected in the parser state,
3340             normally resulting in a single exception at the top level of parsing
3341             which covers all the compilation errors that occurred. Some compilation
3342             errors, however, will throw an exception immediately.
3343              
3344             NOTE: this function is experimental and may change or be
3345             removed without notice.
3346              
3347             OP * parse_arithexpr(U32 flags)','name' => 'parse_arithexpr'},'Nullav' => {'text' => 'Null AV pointer.
3348              
3349             (deprecated - use C<(AV *)NULL> instead)','name' => 'Nullav'},'sv_pvbyten' => {'text' => 'A private implementation of the C macro for compilers
3350             which can\'t cope with complex macro expressions. Always use the macro
3351             instead.
3352              
3353             char* sv_pvbyten(SV *sv, STRLEN *lp)','name' => 'sv_pvbyten'},'isOCTAL' => {'text' => 'Returns a boolean indicating whether the specified character is an
3354             octal digit, [0-7] in the platform\'s native character set.
3355             Variants C and C are identical to C.
3356              
3357             bool isOCTAL(char ch)','name' => 'isOCTAL'},'sv_copypv' => {'text' => 'Copies a stringified representation of the source SV into the
3358             destination SV. Automatically performs any necessary mg_get and
3359             coercion of numeric values into strings. Guaranteed to preserve
3360             UTF8 flag even from overloaded objects. Similar in nature to
3361             sv_2pv[_flags] but operates directly on an SV instead of just the
3362             string. Mostly uses sv_2pv_flags to do its work, except when that
3363             would lose the UTF-8\'ness of the PV.
3364              
3365             void sv_copypv(SV *const dsv, SV *const ssv)','name' => 'sv_copypv'},'rsignal' => {'text' => '','name' => 'rsignal'},'sv_pv' => {'text' => 'Use the C macro instead
3366              
3367             char* sv_pv(SV *sv)','name' => 'sv_pv'},'is_uni_xdigit' => {'text' => '','name' => 'is_uni_xdigit'},'pv_pretty' => {'text' => 'Converts a string into something presentable, handling escaping via
3368             pv_escape() and supporting quoting and ellipses.
3369              
3370             If the PERL_PV_PRETTY_QUOTE flag is set then the result will be
3371             double quoted with any double quotes in the string escaped. Otherwise
3372             if the PERL_PV_PRETTY_LTGT flag is set then the result be wrapped in
3373             angle brackets.
3374              
3375             If the PERL_PV_PRETTY_ELLIPSES flag is set and not all characters in
3376             string were output then an ellipsis C<...> will be appended to the
3377             string. Note that this happens AFTER it has been quoted.
3378              
3379             If start_color is non-null then it will be inserted after the opening
3380             quote (if there is one) but before the escaped text. If end_color
3381             is non-null then it will be inserted after the escaped text but before
3382             any quotes or ellipses.
3383              
3384             Returns a pointer to the prettified text as held by dsv.
3385              
3386             char* pv_pretty(SV *dsv, char const * const str, const STRLEN count, const STRLEN max, char const * const start_color, char const * const end_color, const U32 flags)','name' => 'pv_pretty'},'sv_setnv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
3387              
3388             void sv_setnv_mg(SV *const sv, const NV num)','name' => 'sv_setnv_mg'},'perl_alloc_using' => {'text' => '','name' => 'perl_alloc_using'},'utf8_to_bytes' => {'text' => 'Converts a string C of length C from UTF-8 into native byte encoding.
3389             Unlike C, this over-writes the original string, and
3390             updates len to contain the new length.
3391             Returns zero on failure, setting C to -1.
3392              
3393             If you need a copy of the string, see C.
3394              
3395             NOTE: this function is experimental and may change or be
3396             removed without notice.
3397              
3398             U8* utf8_to_bytes(U8 *s, STRLEN *len)','name' => 'utf8_to_bytes'},'sv_setref_pvs' => {'text' => 'Like C, but takes a literal string instead of a
3399             string/length pair.
3400              
3401             SV * sv_setref_pvs(const char* s)','name' => 'sv_setref_pvs'},'re_dup_guts' => {'text' => '','name' => 're_dup_guts'},'si_dup' => {'text' => '','name' => 'si_dup'},'uvuni_to_utf8_flags' => {'text' => 'Adds the UTF-8 representation of the code point C to the end
3402             of the string C; C should have at least C free
3403             bytes available. The return value is the pointer to the byte after the
3404             end of the new character. In other words,
3405              
3406             d = uvuni_to_utf8_flags(d, uv, flags);
3407              
3408             or, in most cases,
3409              
3410             d = uvuni_to_utf8(d, uv);
3411              
3412             (which is equivalent to)
3413              
3414             d = uvuni_to_utf8_flags(d, uv, 0);
3415              
3416             This is the recommended Unicode-aware way of saying
3417              
3418             *(d++) = uv;
3419              
3420             This function will convert to UTF-8 (and not warn) even code points that aren\'t
3421             legal Unicode or are problematic, unless C contains one or more of the
3422             following flags.
3423             If C is a Unicode surrogate code point and UNICODE_WARN_SURROGATE is set,
3424             the function will raise a warning, provided UTF8 warnings are enabled. If instead
3425             UNICODE_DISALLOW_SURROGATE is set, the function will fail and return NULL.
3426             If both flags are set, the function will both warn and return NULL.
3427              
3428             The UNICODE_WARN_NONCHAR and UNICODE_DISALLOW_NONCHAR flags correspondingly
3429             affect how the function handles a Unicode non-character. And, likewise for the
3430             UNICODE_WARN_SUPER and UNICODE_DISALLOW_SUPER flags, and code points that are
3431             above the Unicode maximum of 0x10FFFF. Code points above 0x7FFF_FFFF (which are
3432             even less portable) can be warned and/or disallowed even if other above-Unicode
3433             code points are accepted by the UNICODE_WARN_FE_FF and UNICODE_DISALLOW_FE_FF
3434             flags.
3435              
3436             And finally, the flag UNICODE_WARN_ILLEGAL_INTERCHANGE selects all four of the
3437             above WARN flags; and UNICODE_DISALLOW_ILLEGAL_INTERCHANGE selects all four
3438             DISALLOW flags.
3439              
3440              
3441             U8* uvuni_to_utf8_flags(U8 *d, UV uv, UV flags)','name' => 'uvuni_to_utf8_flags'},'PL_rpeepp' => {'text' => 'Pointer to the recursive peephole optimiser. This is a function
3442             that gets called at the end of compilation of a Perl subroutine (or
3443             equivalently independent piece of Perl code) to perform fixups of some
3444             ops and to perform small-scale optimisations. The function is called
3445             once for each chain of ops linked through their C fields;
3446             it is recursively called to handle each side chain. It is passed, as
3447             sole parameter, a pointer to the op that is at the head of the chain.
3448             It modifies the op tree in place.
3449              
3450             The peephole optimiser should never be completely replaced. Rather,
3451             add code to it by wrapping the existing optimiser. The basic way to do
3452             this can be seen in L.
3453             If the new code wishes to operate only on ops at a subroutine\'s top level,
3454             rather than throughout the structure, it is likely to be more convenient
3455             to wrap the L hook.
3456              
3457             peep_t PL_rpeepp','name' => 'PL_rpeepp'},'G_DISCARD' => {'text' => 'Indicates that arguments returned from a callback should be discarded. See
3458             L.','name' => 'G_DISCARD'},'newGVREF' => {'text' => '','name' => 'newGVREF'},'XST_mNV' => {'text' => 'Place a double into the specified position C on the stack. The value
3459             is stored in a new mortal SV.
3460              
3461             void XST_mNV(int pos, NV nv)','name' => 'XST_mNV'},'UNDERBAR' => {'text' => 'The SV* corresponding to the $_ variable. Works even if there
3462             is a lexical $_ in scope.','name' => 'UNDERBAR'},'newSVOP' => {'text' => 'Constructs, checks, and returns an op of any type that involves an
3463             embedded SV. I is the opcode. I gives the eight bits
3464             of C. I gives the SV to embed in the op; this function
3465             takes ownership of one reference to it.
3466              
3467             OP * newSVOP(I32 type, I32 flags, SV *sv)','name' => 'newSVOP'},'cophh_fetch_pvn' => {'text' => 'Look up the entry in the cop hints hash I with the key specified by
3468             I and I. If I has the C bit set,
3469             the key octets are interpreted as UTF-8, otherwise they are interpreted
3470             as Latin-1. I is a precomputed hash of the key string, or zero if
3471             it has not been precomputed. Returns a mortal scalar copy of the value
3472             associated with the key, or C<&PL_sv_placeholder> if there is no value
3473             associated with the key.
3474              
3475             NOTE: this function is experimental and may change or be
3476             removed without notice.
3477              
3478             SV * cophh_fetch_pvn(const COPHH *cophh, const char *keypv, STRLEN keylen, U32 hash, U32 flags)','name' => 'cophh_fetch_pvn'},'pad_sv' => {'text' => 'Get the value at offset po in the current pad.
3479             Use macro PAD_SV instead of calling this function directly.
3480              
3481             SV* pad_sv(PADOFFSET po)','name' => 'pad_sv'},'amagic_call' => {'text' => '','name' => 'amagic_call'},'op_free' => {'text' => '','name' => 'op_free'},'SvPVutf8_force' => {'text' => 'Like C, but converts sv to utf8 first if necessary.
3482              
3483             char* SvPVutf8_force(SV* sv, STRLEN len)','name' => 'SvPVutf8_force'},'gv_AVadd' => {'text' => '','name' => 'gv_AVadd'},'pop_scope' => {'text' => '','name' => 'pop_scope'},'SVt_NV' => {'text' => 'Double type flag for scalars. See C.','name' => 'SVt_NV'},'my_popen_list' => {'text' => '','name' => 'my_popen_list'},'sv_2uv' => {'text' => '','name' => 'sv_2uv'},'PUSHMARK' => {'text' => 'Opening bracket for arguments on a callback. See C and
3484             L.
3485              
3486             void PUSHMARK(SP)','name' => 'PUSHMARK'},'taint_proper' => {'text' => '','name' => 'taint_proper'},'save_generic_pvref' => {'text' => '','name' => 'save_generic_pvref'},'ST' => {'text' => 'Used to access elements on the XSUB\'s stack.
3487              
3488             SV* ST(int ix)','name' => 'ST'},'call_pv' => {'text' => 'Performs a callback to the specified Perl sub. See L.
3489              
3490             NOTE: the perl_ form of this function is deprecated.
3491              
3492             I32 call_pv(const char* sub_name, I32 flags)','name' => 'call_pv'},'gv_fetchmeth_autoload' => {'text' => 'Same as gv_fetchmeth(), but looks for autoloaded subroutines too.
3493             Returns a glob for the subroutine.
3494              
3495             For an autoloaded subroutine without a GV, will create a GV even
3496             if C. For an autoloaded subroutine without a stub, GvCV()
3497             of the result may be zero.
3498              
3499             GV* gv_fetchmeth_autoload(HV* stash, const char* name, STRLEN len, I32 level)','name' => 'gv_fetchmeth_autoload'},'save_mortalizesv' => {'text' => '','name' => 'save_mortalizesv'},'sv_pos_b2u' => {'text' => 'Converts the value pointed to by offsetp from a count of bytes from the
3500             start of the string, to a count of the equivalent number of UTF-8 chars.
3501             Handles magic and type coercion.
3502              
3503             void sv_pos_b2u(SV *const sv, I32 *const offsetp)','name' => 'sv_pos_b2u'},'sv_utf8_upgrade_flags_grow' => {'text' => '','name' => 'sv_utf8_upgrade_flags_grow'},'SVt_IV' => {'text' => 'Integer type flag for scalars. See C.','name' => 'SVt_IV'},'SvIsCOW' => {'text' => 'Returns a boolean indicating whether the SV is Copy-On-Write. (either shared
3504             hash key scalars, or full Copy On Write scalars if 5.9.0 is configured for
3505             COW)
3506              
3507             bool SvIsCOW(SV* sv)','name' => 'SvIsCOW'},'reentrant_size' => {'text' => '','name' => 'reentrant_size'},'apply_attrs_string' => {'text' => '','name' => 'apply_attrs_string'},'printf_nocontext' => {'text' => '','name' => 'printf_nocontext'},'save_freesv' => {'text' => '','name' => 'save_freesv'},'sv_catsv' => {'text' => 'Concatenates the string from SV C onto the end of the string in
3508             SV C. Modifies C but not C. Handles \'get\' magic, but
3509             not \'set\' magic. See C.
3510              
3511             void sv_catsv(SV *dstr, SV *sstr)','name' => 'sv_catsv'},'SvPOK_on' => {'text' => 'Tells an SV that it is a string.
3512              
3513             void SvPOK_on(SV* sv)','name' => 'SvPOK_on'},'ax' => {'text' => 'Variable which is setup by C to indicate the stack base offset,
3514             used by the C, C and C macros. The C macro
3515             must be called prior to setup the C variable.
3516              
3517             I32 ax','name' => 'ax'},'regexec_flags' => {'text' => '','name' => 'regexec_flags'},'to_utf8_upper' => {'text' => 'Convert the UTF-8 encoded character at p to its uppercase version and
3518             store that in UTF-8 in ustrp and its length in bytes in lenp. Note
3519             that the ustrp needs to be at least UTF8_MAXBYTES_CASE+1 bytes since
3520             the uppercase version may be longer than the original character.
3521              
3522             The first character of the uppercased version is returned
3523             (but note, as explained above, that there may be more.)
3524              
3525             UV to_utf8_upper(const U8 *p, U8* ustrp, STRLEN *lenp)','name' => 'to_utf8_upper'},'SvPVutf8x_force' => {'text' => 'Like C, but converts sv to utf8 first if necessary.
3526             Guarantees to evaluate sv only once; use the more efficient C
3527             otherwise.
3528              
3529             char* SvPVutf8x_force(SV* sv, STRLEN len)','name' => 'SvPVutf8x_force'},'warner_nocontext' => {'text' => '','name' => 'warner_nocontext'},'sv_eq_flags' => {'text' => 'Returns a boolean indicating whether the strings in the two SVs are
3530             identical. Is UTF-8 and \'use bytes\' aware and coerces its args to strings
3531             if necessary. If the flags include SV_GMAGIC, it handles get-magic, too.
3532              
3533             I32 sv_eq_flags(SV* sv1, SV* sv2, const U32 flags)','name' => 'sv_eq_flags'},'my_htonl' => {'text' => '','name' => 'my_htonl'},'PUSHi' => {'text' => 'Push an integer onto the stack. The stack must have room for this element.
3534             Handles \'set\' magic. Uses C, so C or C should be
3535             called to declare it. Do not call multiple C-oriented macros to
3536             return lists from XSUB\'s - see C instead. See also C and
3537             C.
3538              
3539             void PUSHi(IV iv)','name' => 'PUSHi'},'is_uni_digit' => {'text' => '','name' => 'is_uni_digit'},'SvLEN_set' => {'text' => 'Set the actual length of the string which is in the SV. See C.
3540              
3541             void SvLEN_set(SV* sv, STRLEN len)','name' => 'SvLEN_set'},'to_utf8_lower' => {'text' => 'Convert the UTF-8 encoded character at p to its lowercase version and
3542             store that in UTF-8 in ustrp and its length in bytes in lenp. Note
3543             that the ustrp needs to be at least UTF8_MAXBYTES_CASE+1 bytes since the
3544             lowercase version may be longer than the original character.
3545              
3546             The first character of the lowercased version is returned
3547             (but note, as explained above, that there may be more.)
3548              
3549             UV to_utf8_lower(const U8 *p, U8* ustrp, STRLEN *lenp)','name' => 'to_utf8_lower'},'new_numeric' => {'text' => '','name' => 'new_numeric'},'newSVpvf' => {'text' => 'Creates a new SV and initializes it with the string formatted like
3550             C.
3551              
3552             SV* newSVpvf(const char *const pat, ...)','name' => 'newSVpvf'},'doing_taint' => {'text' => '','name' => 'doing_taint'},'save_I8' => {'text' => '','name' => 'save_I8'},'Newxc' => {'text' => 'The XSUB-writer\'s interface to the C C function, with
3553             cast. See also C.
3554              
3555             void Newxc(void* ptr, int nitems, type, cast)','name' => 'Newxc'},'SvIVX' => {'text' => 'Returns the raw value in the SV\'s IV slot, without checks or conversions.
3556             Only use when you are sure SvIOK is true. See also C.
3557              
3558             IV SvIVX(SV* sv)','name' => 'SvIVX'},'lex_stuff_pvs' => {'text' => 'Like L, but takes a literal string instead of a
3559             string/length pair.
3560              
3561             NOTE: this function is experimental and may change or be
3562             removed without notice.
3563              
3564             void lex_stuff_pvs(const char *pv, U32 flags)','name' => 'lex_stuff_pvs'},'perl_destruct' => {'text' => 'Shuts down a Perl interpreter. See L.
3565              
3566             int perl_destruct(PerlInterpreter *my_perl)','name' => 'perl_destruct'},'is_utf8_idfirst' => {'text' => '','name' => 'is_utf8_idfirst'},'custom_op_name' => {'text' => 'Return the name for a given custom op. This was once used by the OP_NAME
3567             macro, but is no longer: it has only been kept for compatibility, and
3568             should not be used.
3569              
3570             const char * custom_op_name(const OP *o)','name' => 'custom_op_name'},'sv_vsetpvf' => {'text' => 'Works like C but copies the text into the SV instead of
3571             appending it. Does not handle \'set\' magic. See C.
3572              
3573             Usually used via its frontend C.
3574              
3575             void sv_vsetpvf(SV *const sv, const char *const pat, va_list *const args)','name' => 'sv_vsetpvf'},'any_dup' => {'text' => '','name' => 'any_dup'},'XCPT_CATCH' => {'text' => 'Introduces a catch block. See L.','name' => 'XCPT_CATCH'},'regclass_swash' => {'text' => '','name' => 'regclass_swash'},'my_dirfd' => {'text' => '','name' => 'my_dirfd'},'SvIOK_off' => {'text' => 'Unsets the IV status of an SV.
3576              
3577             void SvIOK_off(SV* sv)','name' => 'SvIOK_off'},'XST_mYES' => {'text' => 'Place C<&PL_sv_yes> into the specified position C on the
3578             stack.
3579              
3580             void XST_mYES(int pos)','name' => 'XST_mYES'},'sv_setsv' => {'text' => 'Copies the contents of the source SV C into the destination SV
3581             C. The source SV may be destroyed if it is mortal, so don\'t use this
3582             function if the source SV needs to be reused. Does not handle \'set\' magic.
3583             Loosely speaking, it performs a copy-by-value, obliterating any previous
3584             content of the destination.
3585              
3586             You probably want to use one of the assortment of wrappers, such as
3587             C, C, C and
3588             C.
3589              
3590             void sv_setsv(SV *dstr, SV *sstr)','name' => 'sv_setsv'},'PerlIO_stdin' => {'text' => '','name' => 'PerlIO_stdin'},'ix' => {'text' => 'Variable which is setup by C to indicate which of an
3591             XSUB\'s aliases was used to invoke it. See L.
3592              
3593             I32 ix','name' => 'ix'},'XSRETURN_UV' => {'text' => 'Return an integer from an XSUB immediately. Uses C.
3594              
3595             void XSRETURN_UV(IV uv)','name' => 'XSRETURN_UV'},'SvREFCNT_inc_simple' => {'text' => 'Same as SvREFCNT_inc, but can only be used with expressions without side
3596             effects. Since we don\'t have to store a temporary value, it\'s faster.
3597              
3598             SV* SvREFCNT_inc_simple(SV* sv)','name' => 'SvREFCNT_inc_simple'},'my_lstat' => {'text' => '','name' => 'my_lstat'},'my_atof' => {'text' => '','name' => 'my_atof'},'savestack_grow_cnt' => {'text' => '','name' => 'savestack_grow_cnt'},'SvTRUE_nomg' => {'text' => 'Returns a boolean indicating whether Perl would evaluate the SV as true or
3599             false. See SvOK() for a defined/undefined test. Does not handle \'get\' magic.
3600              
3601             bool SvTRUE_nomg(SV* sv)','name' => 'SvTRUE_nomg'},'vverify' => {'text' => 'Validates that the SV contains valid internal structure for a version object.
3602             It may be passed either the version object (RV) or the hash itself (HV). If
3603             the structure is valid, it returns the HV. If the structure is invalid,
3604             it returns NULL.
3605              
3606             SV *hv = vverify(sv);
3607              
3608             Note that it only confirms the bare minimum structure (so as not to get
3609             confused by derived classes which may contain additional hash entries):
3610              
3611             SV* vverify(SV *vs)','name' => 'vverify'},'dXSI32' => {'text' => 'Sets up the C variable for an XSUB which has aliases. This is usually
3612             handled automatically by C.
3613              
3614             dXSI32;','name' => 'dXSI32'},'dXCPT' => {'text' => 'Set up necessary local variables for exception handling.
3615             See L.
3616              
3617             dXCPT;','name' => 'dXCPT'},'sv_tainted' => {'text' => 'Test an SV for taintedness. Use C instead.
3618             bool sv_tainted(SV *const sv)','name' => 'sv_tainted'},'mro_set_private_data' => {'text' => '','name' => 'mro_set_private_data'},'do_gv_dump' => {'text' => '','name' => 'do_gv_dump'},'reg_named_buff_nextkey' => {'text' => '','name' => 'reg_named_buff_nextkey'},'hv_fill' => {'text' => 'Returns the number of hash buckets that happen to be in use. This function is
3619             wrapped by the macro C.
3620              
3621             Previously this value was stored in the HV structure, rather than being
3622             calculated on demand.
3623              
3624             STRLEN hv_fill(HV const *const hv)','name' => 'hv_fill'},'cv_const_sv' => {'text' => 'If C is a constant sub eligible for inlining. returns the constant
3625             value returned by the sub. Otherwise, returns NULL.
3626              
3627             Constant subs can be created with C or as described in
3628             L.
3629              
3630             SV* cv_const_sv(const CV *const cv)','name' => 'cv_const_sv'},'newSVnv' => {'text' => 'Creates a new SV and copies a floating point value into it.
3631             The reference count for the SV is set to 1.
3632              
3633             SV* newSVnv(const NV n)','name' => 'newSVnv'},'HeVAL' => {'text' => 'Returns the value slot (type C) stored in the hash entry.
3634              
3635             SV* HeVAL(HE* he)','name' => 'HeVAL'},'HePV' => {'text' => 'Returns the key slot of the hash entry as a C value, doing any
3636             necessary dereferencing of possibly C keys. The length of the string
3637             is placed in C (this is a macro, so do I use C<&len>). If you do
3638             not care about what the length of the key is, you may use the global
3639             variable C, though this is rather less efficient than using a local
3640             variable. Remember though, that hash keys in perl are free to contain
3641             embedded nulls, so using C or similar is not a good way to find
3642             the length of hash keys. This is very similar to the C macro
3643             described elsewhere in this document. See also C.
3644              
3645             If you are using C to get values to pass to C to create a
3646             new SV, you should consider using C as it is more
3647             efficient.
3648              
3649             char* HePV(HE* he, STRLEN len)','name' => 'HePV'},'hv_free_ent' => {'text' => '','name' => 'hv_free_ent'},'PL_parser' => {'text' => 'Pointer to a structure encapsulating the state of the parsing operation
3650             currently in progress. The pointer can be locally changed to perform
3651             a nested parse without interfering with the state of an outer parse.
3652             Individual members of C have their own documentation.','name' => 'PL_parser'},'SvGETMAGIC' => {'text' => 'Invokes C on an SV if it has \'get\' magic. This macro evaluates its
3653             argument more than once.
3654              
3655             void SvGETMAGIC(SV* sv)','name' => 'SvGETMAGIC'},'pv_uni_display' => {'text' => 'Build to the scalar dsv a displayable version of the string spv,
3656             length len, the displayable version being at most pvlim bytes long
3657             (if longer, the rest is truncated and "..." will be appended).
3658              
3659             The flags argument can have UNI_DISPLAY_ISPRINT set to display
3660             isPRINT()able characters as themselves, UNI_DISPLAY_BACKSLASH
3661             to display the \\\\[nrfta\\\\] as the backslashed versions (like \'\\n\')
3662             (UNI_DISPLAY_BACKSLASH is preferred over UNI_DISPLAY_ISPRINT for \\\\).
3663             UNI_DISPLAY_QQ (and its alias UNI_DISPLAY_REGEX) have both
3664             UNI_DISPLAY_BACKSLASH and UNI_DISPLAY_ISPRINT turned on.
3665              
3666             The pointer to the PV of the dsv is returned.
3667              
3668             char* pv_uni_display(SV *dsv, const U8 *spv, STRLEN len, STRLEN pvlim, UV flags)','name' => 'pv_uni_display'},'init_stacks' => {'text' => '','name' => 'init_stacks'},'sv_inc' => {'text' => 'Auto-increment of the value in the SV, doing string to numeric conversion
3669             if necessary. Handles \'get\' magic and operator overloading.
3670              
3671             void sv_inc(SV *const sv)','name' => 'sv_inc'},'SvPVbytex_force' => {'text' => 'Like C, but converts sv to byte representation first if necessary.
3672             Guarantees to evaluate sv only once; use the more efficient C
3673             otherwise.
3674              
3675             char* SvPVbytex_force(SV* sv, STRLEN len)','name' => 'SvPVbytex_force'},'op_prepend_elem' => {'text' => 'Prepend an item to the list of ops contained directly within a list-type
3676             op, returning the lengthened list. I is the op to prepend to the
3677             list, and I is the list-type op. I specifies the intended
3678             opcode for the list. If I is not already a list of the right type,
3679             it will be upgraded into one. If either I or I is null,
3680             the other is returned unchanged.
3681              
3682             OP * op_prepend_elem(I32 optype, OP *first, OP *last)','name' => 'op_prepend_elem'},'hv_delete' => {'text' => 'Deletes a key/value pair in the hash. The value\'s SV is removed from the
3683             hash, made mortal, and returned to the caller. The C is the length of
3684             the key. The C value will normally be zero; if set to G_DISCARD then
3685             NULL will be returned. NULL will also be returned if the key is not found.
3686              
3687             SV* hv_delete(HV *hv, const char *key, I32 klen, I32 flags)','name' => 'hv_delete'},'_to_uni_fold_flags' => {'text' => '','name' => '_to_uni_fold_flags'},'POP_MULTICALL' => {'text' => 'Closing bracket for a lightweight callback.
3688             See L.
3689              
3690             POP_MULTICALL;','name' => 'POP_MULTICALL'},'sv_cat_decode' => {'text' => 'The encoding is assumed to be an Encode object, the PV of the ssv is
3691             assumed to be octets in that encoding and decoding the input starts
3692             from the position which (PV + *offset) pointed to. The dsv will be
3693             concatenated the decoded UTF-8 string from ssv. Decoding will terminate
3694             when the string tstr appears in decoding output or the input ends on
3695             the PV of the ssv. The value which the offset points will be modified
3696             to the last input position on the ssv.
3697              
3698             Returns TRUE if the terminator was found, else returns FALSE.
3699              
3700             bool sv_cat_decode(SV* dsv, SV *encoding, SV *ssv, int *offset, char* tstr, int tlen)','name' => 'sv_cat_decode'},'SvIV_set' => {'text' => 'Set the value of the IV pointer in sv to val. It is possible to perform
3701             the same function of this macro with an lvalue assignment to C.
3702             With future Perls, however, it will be more efficient to use
3703             C instead of the lvalue assignment to C.
3704              
3705             void SvIV_set(SV* sv, IV val)','name' => 'SvIV_set'},'sv_setiv' => {'text' => 'Copies an integer into the given SV, upgrading first if necessary.
3706             Does not handle \'set\' magic. See also C.
3707              
3708             void sv_setiv(SV *const sv, const IV num)','name' => 'sv_setiv'},'gv_efullname' => {'text' => '','name' => 'gv_efullname'},'sv_report_used' => {'text' => 'Dump the contents of all SVs not yet freed. (Debugging aid).
3709              
3710             void sv_report_used()','name' => 'sv_report_used'},'save_sptr' => {'text' => '','name' => 'save_sptr'},'SvNVX' => {'text' => 'Returns the raw value in the SV\'s NV slot, without checks or conversions.
3711             Only use when you are sure SvNOK is true. See also C.
3712              
3713             NV SvNVX(SV* sv)','name' => 'SvNVX'},'do_open' => {'text' => '','name' => 'do_open'},'regnext' => {'text' => '','name' => 'regnext'},'HeHASH' => {'text' => 'Returns the computed hash stored in the hash entry.
3714              
3715             U32 HeHASH(HE* he)','name' => 'HeHASH'},'SvIOK' => {'text' => 'Returns a U32 value indicating whether the SV contains an integer.
3716              
3717             U32 SvIOK(SV* sv)','name' => 'SvIOK'},'newANONHASH' => {'text' => '','name' => 'newANONHASH'},'SvPV_force' => {'text' => 'Like C but will force the SV into containing just a string
3718             (C). You want force if you are going to update the C
3719             directly.
3720              
3721             char* SvPV_force(SV* sv, STRLEN len)','name' => 'SvPV_force'},'HeUTF8' => {'text' => 'Returns whether the C value returned by C is encoded in UTF-8,
3722             doing any necessary dereferencing of possibly C keys. The value returned
3723             will be 0 or non-0, not necessarily 1 (or even a value with any low bits set),
3724             so B blindly assign this to a C variable, as C may be a
3725             typedef for C.
3726              
3727             char* HeUTF8(HE* he)','name' => 'HeUTF8'},'newRANGE' => {'text' => 'Constructs and returns a C op, with subordinate C and
3728             C ops. I gives the eight bits of C for the
3729             C op and, shifted up eight bits, the eight bits of C
3730             for both the C and C ops, except that the bit with value
3731             1 is automatically set. I and I supply the expressions
3732             controlling the endpoints of the range; they are consumed by this function
3733             and become part of the constructed op tree.
3734              
3735             OP * newRANGE(I32 flags, OP *left, OP *right)','name' => 'newRANGE'},'cophh_delete_pvn' => {'text' => 'Delete a key and its associated value from the cop hints hash I,
3736             and returns the modified hash. The returned hash pointer is in general
3737             not the same as the hash pointer that was passed in. The input hash is
3738             consumed by the function, and the pointer to it must not be subsequently
3739             used. Use L if you need both hashes.
3740              
3741             The key is specified by I and I. If I has the
3742             C bit set, the key octets are interpreted as UTF-8,
3743             otherwise they are interpreted as Latin-1. I is a precomputed
3744             hash of the key string, or zero if it has not been precomputed.
3745              
3746             NOTE: this function is experimental and may change or be
3747             removed without notice.
3748              
3749             COPHH * cophh_delete_pvn(COPHH *cophh, const char *keypv, STRLEN keylen, U32 hash, U32 flags)','name' => 'cophh_delete_pvn'},'grok_hex' => {'text' => 'converts a string representing a hex number to numeric form.
3750              
3751             On entry I and I<*len> give the string to scan, I<*flags> gives
3752             conversion flags, and I should be NULL or a pointer to an NV.
3753             The scan stops at the end of the string, or the first invalid character.
3754             Unless C is set in I<*flags>, encountering an
3755             invalid character will also trigger a warning.
3756             On return I<*len> is set to the length of the scanned string,
3757             and I<*flags> gives output flags.
3758              
3759             If the value is <= UV_MAX it is returned as a UV, the output flags are clear,
3760             and nothing is written to I<*result>. If the value is > UV_MAX C
3761             returns UV_MAX, sets C in the output flags,
3762             and writes the value to I<*result> (or the value is discarded if I
3763             is NULL).
3764              
3765             The hex number may optionally be prefixed with "0x" or "x" unless
3766             C is set in I<*flags> on entry. If
3767             C is set in I<*flags> then the hex
3768             number may use \'_\' characters to separate digits.
3769              
3770             UV grok_hex(const char* start, STRLEN* len_p, I32* flags, NV *result)','name' => 'grok_hex'},'newRV' => {'text' => '','name' => 'newRV'},'SvLOCK' => {'text' => 'Arranges for a mutual exclusion lock to be obtained on sv if a suitable module
3771             has been loaded.
3772              
3773             void SvLOCK(SV* sv)','name' => 'SvLOCK'},'gv_fetchfile' => {'text' => '','name' => 'gv_fetchfile'},'sv_vsetpvfn' => {'text' => 'Works like C but copies the text into the SV instead of
3774             appending it.
3775              
3776             Usually used via one of its frontends C and C.
3777              
3778             void sv_vsetpvfn(SV *const sv, const char *const pat, const STRLEN patlen, va_list *const args, SV **const svargs, const I32 svmax, bool *const maybe_tainted)','name' => 'sv_vsetpvfn'},'PerlIO_get_cnt' => {'text' => '','name' => 'PerlIO_get_cnt'},'PerlIO_setlinebuf' => {'text' => '','name' => 'PerlIO_setlinebuf'},'utf16_to_utf8_reversed' => {'text' => '','name' => 'utf16_to_utf8_reversed'},'cast_ulong' => {'text' => '','name' => 'cast_ulong'},'to_utf8_case' => {'text' => 'The "p" contains the pointer to the UTF-8 string encoding
3779             the character that is being converted.
3780              
3781             The "ustrp" is a pointer to the character buffer to put the
3782             conversion result to. The "lenp" is a pointer to the length
3783             of the result.
3784              
3785             The "swashp" is a pointer to the swash to use.
3786              
3787             Both the special and normal mappings are stored in lib/unicore/To/Foo.pl,
3788             and loaded by SWASHNEW, using lib/utf8_heavy.pl. The special (usually,
3789             but not always, a multicharacter mapping), is tried first.
3790              
3791             The "special" is a string like "utf8::ToSpecLower", which means the
3792             hash %utf8::ToSpecLower. The access to the hash is through
3793             Perl_to_utf8_case().
3794              
3795             The "normal" is a string like "ToLower" which means the swash
3796             %utf8::ToLower.
3797              
3798             UV to_utf8_case(const U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, const char *normal, const char *special)','name' => 'to_utf8_case'},'set_numeric_local' => {'text' => '','name' => 'set_numeric_local'},'is_utf8_print' => {'text' => '','name' => 'is_utf8_print'},'calloc' => {'text' => '','name' => 'calloc'},'POPpbytex' => {'text' => 'Pops a string off the stack which must consist of bytes i.e. characters < 256.
3799              
3800             char* POPpbytex','name' => 'POPpbytex'},'cophh_store_sv' => {'text' => 'Like L, but takes a Perl scalar instead of a
3801             string/length pair.
3802              
3803             NOTE: this function is experimental and may change or be
3804             removed without notice.
3805              
3806             COPHH * cophh_store_sv(const COPHH *cophh, SV *key, U32 hash, SV *value, U32 flags)','name' => 'cophh_store_sv'},'newPMOP' => {'text' => 'Constructs, checks, and returns an op of any pattern matching type.
3807             I is the opcode. I gives the eight bits of C
3808             and, shifted up eight bits, the eight bits of C.
3809              
3810             OP * newPMOP(I32 type, I32 flags)','name' => 'newPMOP'},'PL_peepp' => {'text' => 'Pointer to the per-subroutine peephole optimiser. This is a function
3811             that gets called at the end of compilation of a Perl subroutine (or
3812             equivalently independent piece of Perl code) to perform fixups of
3813             some ops and to perform small-scale optimisations. The function is
3814             called once for each subroutine that is compiled, and is passed, as sole
3815             parameter, a pointer to the op that is the entry point to the subroutine.
3816             It modifies the op tree in place.
3817              
3818             The peephole optimiser should never be completely replaced. Rather,
3819             add code to it by wrapping the existing optimiser. The basic way to do
3820             this can be seen in L.
3821             If the new code wishes to operate on ops throughout the subroutine\'s
3822             structure, rather than just at the top level, it is likely to be more
3823             convenient to wrap the L hook.
3824              
3825             peep_t PL_peepp','name' => 'PL_peepp'},'SvSetMagicSV' => {'text' => 'Like C, but does any set magic required afterwards.
3826              
3827             void SvSetMagicSV(SV* dsb, SV* ssv)','name' => 'SvSetMagicSV'},'Move' => {'text' => 'The XSUB-writer\'s interface to the C C function. The C is the
3828             source, C is the destination, C is the number of items, and C is
3829             the type. Can do overlapping moves. See also C.
3830              
3831             void Move(void* src, void* dest, int nitems, type)','name' => 'Move'},'set_context' => {'text' => '','name' => 'set_context'},'sv_catpvn_flags' => {'text' => 'Concatenates the string onto the end of the string which is in the SV. The
3832             C indicates number of bytes to copy. If the SV has the UTF-8
3833             status set, then the bytes appended should be valid UTF-8.
3834             If C has C bit set, will C on C if
3835             appropriate, else not. C and C are implemented
3836             in terms of this function.
3837              
3838             void sv_catpvn_flags(SV *const dstr, const char *sstr, const STRLEN len, const I32 flags)','name' => 'sv_catpvn_flags'},'PerlIO_flush' => {'text' => '','name' => 'PerlIO_flush'},'sv_2iv_flags' => {'text' => 'Return the integer value of an SV, doing any necessary string
3839             conversion. If flags includes SV_GMAGIC, does an mg_get() first.
3840             Normally used via the C and C macros.
3841              
3842             IV sv_2iv_flags(SV *const sv, const I32 flags)','name' => 'sv_2iv_flags'},'runops_standard' => {'text' => '','name' => 'runops_standard'},'gv_efullname3' => {'text' => '','name' => 'gv_efullname3'},'newXS' => {'text' => 'Used by C to hook up XSUBs as Perl subs. I needs to be
3843             static storage, as it is used directly as CvFILE(), without a copy being made.','name' => 'newXS'},'XCPT_RETHROW' => {'text' => 'Rethrows a previously caught exception. See L.
3844              
3845             XCPT_RETHROW;','name' => 'XCPT_RETHROW'},'mg_dup' => {'text' => '','name' => 'mg_dup'},'cop_hints_fetch_pvs' => {'text' => 'Like L, but takes a literal string instead of a
3846             string/length pair, and no precomputed hash.
3847              
3848             SV * cop_hints_fetch_pvs(const COP *cop, const char *key, U32 flags)','name' => 'cop_hints_fetch_pvs'},'PUSHmortal' => {'text' => 'Push a new mortal SV onto the stack. The stack must have room for this
3849             element. Does not use C. See also C, C and C.
3850              
3851             void PUSHmortal()','name' => 'PUSHmortal'},'perl_alloc' => {'text' => 'Allocates a new Perl interpreter. See L.
3852              
3853             PerlInterpreter* perl_alloc()','name' => 'perl_alloc'},'sv_dump' => {'text' => '','name' => 'sv_dump'},'OP_DESC' => {'text' => 'Return a short description of the provided OP.
3854              
3855             const char * OP_DESC(OP *o)','name' => 'OP_DESC'},'strLE' => {'text' => 'Test two strings to see if the first, C, is less than or equal to the
3856             second, C. Returns true or false.
3857              
3858             bool strLE(char* s1, char* s2)','name' => 'strLE'},'newSVpvn_flags' => {'text' => 'Creates a new SV and copies a string into it. The reference count for the
3859             SV is set to 1. Note that if C is zero, Perl will create a zero length
3860             string. You are responsible for ensuring that the source string is at least
3861             C bytes long. If the C argument is NULL the new SV will be undefined.
3862             Currently the only flag bits accepted are C and C.
3863             If C is set, then C is called on the result before
3864             returning. If C is set, C is considered to be in UTF-8 and the
3865             C flag will be set on the new SV.
3866             C is a convenience wrapper for this function, defined as
3867              
3868             #define newSVpvn_utf8(s, len, u) \\
3869             newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0)
3870              
3871             SV* newSVpvn_flags(const char *const s, const STRLEN len, const U32 flags)','name' => 'newSVpvn_flags'},'XopFLAGS' => {'text' => 'Return the XOP\'s flags.
3872              
3873             U32 XopFLAGS(XOP *xop)','name' => 'XopFLAGS'},'sv_compile_2op' => {'text' => '','name' => 'sv_compile_2op'},'SvOK' => {'text' => 'Returns a U32 value indicating whether the value is defined. This is
3874             only meaningful for scalars.
3875              
3876             U32 SvOK(SV* sv)','name' => 'SvOK'},'sv_setref_nv' => {'text' => 'Copies a double into a new SV, optionally blessing the SV. The C
3877             argument will be upgraded to an RV. That RV will be modified to point to
3878             the new SV. The C argument indicates the package for the
3879             blessing. Set C to C to avoid the blessing. The new SV
3880             will have a reference count of 1, and the RV will be returned.
3881              
3882             SV* sv_setref_nv(SV *const rv, const char *const classname, const NV nv)','name' => 'sv_setref_nv'},'eval_pv' => {'text' => 'Tells Perl to C the given string and return an SV* result.
3883              
3884             NOTE: the perl_ form of this function is deprecated.
3885              
3886             SV* eval_pv(const char* p, I32 croak_on_error)','name' => 'eval_pv'},'lex_stuff_pvn' => {'text' => 'Insert characters into the lexer buffer (Llinestr>),
3887             immediately after the current lexing point (Lbufptr>),
3888             reallocating the buffer if necessary. This means that lexing code that
3889             runs later will see the characters as if they had appeared in the input.
3890             It is not recommended to do this as part of normal parsing, and most
3891             uses of this facility run the risk of the inserted characters being
3892             interpreted in an unintended manner.
3893              
3894             The string to be inserted is represented by I octets starting
3895             at I. These octets are interpreted as either UTF-8 or Latin-1,
3896             according to whether the C flag is set in I.
3897             The characters are recoded for the lexer buffer, according to how the
3898             buffer is currently being interpreted (L). If a string
3899             to be inserted is available as a Perl scalar, the L
3900             function is more convenient.
3901              
3902             NOTE: this function is experimental and may change or be
3903             removed without notice.
3904              
3905             void lex_stuff_pvn(const char *pv, STRLEN len, U32 flags)','name' => 'lex_stuff_pvn'},'sv_usepvn_flags' => {'text' => 'Tells an SV to use C to find its string value. Normally the
3906             string is stored inside the SV but sv_usepvn allows the SV to use an
3907             outside string. The C should point to memory that was allocated
3908             by C. The string length, C, must be supplied. By default
3909             this function will realloc (i.e. move) the memory pointed to by C,
3910             so that pointer should not be freed or used by the programmer after
3911             giving it to sv_usepvn, and neither should any pointers from "behind"
3912             that pointer (e.g. ptr + 1) be used.
3913              
3914             If C & SV_SMAGIC is true, will call SvSETMAGIC. If C &
3915             SV_HAS_TRAILING_NUL is true, then C must be NUL, and the realloc
3916             will be skipped. (i.e. the buffer is actually at least 1 byte longer than
3917             C, and already meets the requirements for storing in C)
3918              
3919             void sv_usepvn_flags(SV *const sv, char* ptr, const STRLEN len, const U32 flags)','name' => 'sv_usepvn_flags'},'hv_assert' => {'text' => 'Check that a hash is in an internally consistent state.
3920              
3921             void hv_assert(HV *hv)','name' => 'hv_assert'},'my_vsnprintf' => {'text' => 'The C library C if available and standards-compliant.
3922             However, if if the C is not available, will unfortunately
3923             use the unsafe C which can overrun the buffer (there is an
3924             overrun check, but that may be too late). Consider using
3925             C instead, or getting C.
3926              
3927             int my_vsnprintf(char *buffer, const Size_t len, const char *format, va_list ap)','name' => 'my_vsnprintf'},'sv_free' => {'text' => 'Decrement an SV\'s reference count, and if it drops to zero, call
3928             C to invoke destructors and free up any memory used by
3929             the body; finally, deallocate the SV\'s head itself.
3930             Normally called via a wrapper macro C.
3931              
3932             void sv_free(SV *const sv)','name' => 'sv_free'},'die_nocontext' => {'text' => '','name' => 'die_nocontext'},'hv_eiter_p' => {'text' => '','name' => 'hv_eiter_p'},'SvPVbyte_force' => {'text' => 'Like C, but converts sv to byte representation first if necessary.
3933              
3934             char* SvPVbyte_force(SV* sv, STRLEN len)','name' => 'SvPVbyte_force'},'is_utf8_ascii' => {'text' => '','name' => 'is_utf8_ascii'},'av_pop' => {'text' => 'Pops an SV off the end of the array. Returns C<&PL_sv_undef> if the array
3935             is empty.
3936              
3937             SV* av_pop(AV *av)','name' => 'av_pop'},'reg_named_buff_exists' => {'text' => '','name' => 'reg_named_buff_exists'},'save_bool' => {'text' => '','name' => 'save_bool'},'ckwarn_d' => {'text' => '','name' => 'ckwarn_d'},'croak' => {'text' => 'This is an XS interface to Perl\'s C function.
3938              
3939             Take a sprintf-style format pattern and argument list. These are used to
3940             generate a string message. If the message does not end with a newline,
3941             then it will be extended with some indication of the current location
3942             in the code, as described for L.
3943              
3944             The error message will be used as an exception, by default
3945             returning control to the nearest enclosing C, but subject to
3946             modification by a C<$SIG{__DIE__}> handler. In any case, the C
3947             function never returns normally.
3948              
3949             For historical reasons, if C is null then the contents of C
3950             (C<$@>) will be used as an error message or object instead of building an
3951             error message from arguments. If you want to throw a non-string object,
3952             or build an error message in an SV yourself, it is preferable to use
3953             the L function, which does not involve clobbering C.
3954              
3955             void croak(const char *pat, ...)','name' => 'croak'},'save_freepv' => {'text' => '','name' => 'save_freepv'},'THIS' => {'text' => 'Variable which is setup by C to designate the object in a C++
3956             XSUB. This is always the proper type for the C++ object. See C and
3957             L.
3958              
3959             (whatever) THIS','name' => 'THIS'},'XSRETURN' => {'text' => 'Return from XSUB, indicating number of items on the stack. This is usually
3960             handled by C.
3961              
3962             void XSRETURN(int nitems)','name' => 'XSRETURN'},'dump_indent' => {'text' => '','name' => 'dump_indent'},'screaminstr' => {'text' => '','name' => 'screaminstr'},'op_append_elem' => {'text' => 'Append an item to the list of ops contained directly within a list-type
3963             op, returning the lengthened list. I is the list-type op,
3964             and I is the op to append to the list. I specifies the
3965             intended opcode for the list. If I is not already a list of the
3966             right type, it will be upgraded into one. If either I or I
3967             is null, the other is returned unchanged.
3968              
3969             OP * op_append_elem(I32 optype, OP *first, OP *last)','name' => 'op_append_elem'},'lex_read_unichar' => {'text' => 'Reads the next (Unicode) character in the text currently being lexed.
3970             Returns the codepoint (unsigned integer value) of the character read,
3971             and moves Lbufptr> past the character, or returns -1
3972             if lexing has reached the end of the input text. To non-destructively
3973             examine the next character, use L instead.
3974              
3975             If the next character is in (or extends into) the next chunk of input
3976             text, the next chunk will be read in. Normally the current chunk will be
3977             discarded at the same time, but if I includes C
3978             then the current chunk will not be discarded.
3979              
3980             If the input is being interpreted as UTF-8 and a UTF-8 encoding error
3981             is encountered, an exception is generated.
3982              
3983             NOTE: this function is experimental and may change or be
3984             removed without notice.
3985              
3986             I32 lex_read_unichar(U32 flags)','name' => 'lex_read_unichar'},'reginitcolors' => {'text' => '','name' => 'reginitcolors'},'op_contextualize' => {'text' => 'Applies a syntactic context to an op tree representing an expression.
3987             I is the op tree, and I must be C, C,
3988             or C to specify the context to apply. The modified op tree
3989             is returned.
3990              
3991             OP * op_contextualize(OP *o, I32 context)','name' => 'op_contextualize'},'sv_2pv_nolen' => {'text' => 'Like C, but doesn\'t return the length too. You should usually
3992             use the macro wrapper C instead.
3993             char* sv_2pv_nolen(SV* sv)','name' => 'sv_2pv_nolen'},'get_av' => {'text' => 'Returns the AV of the specified Perl array. C are passed to
3994             C. If C is set and the
3995             Perl variable does not exist then it will be created. If C is zero
3996             and the variable does not exist then NULL is returned.
3997              
3998             NOTE: the perl_ form of this function is deprecated.
3999              
4000             AV* get_av(const char *name, I32 flags)','name' => 'get_av'},'PoisonFree' => {'text' => 'PoisonWith(0xEF) for catching access to freed memory.
4001              
4002             void PoisonFree(void* dest, int nitems, type)','name' => 'PoisonFree'},'gv_SVadd' => {'text' => '','name' => 'gv_SVadd'},'hv_common' => {'text' => '','name' => 'hv_common'},'XopENTRY' => {'text' => 'Return a member of the XOP structure. I is a cpp token indicating
4003             which entry to return. If the member is not set this will return a
4004             default value. The return type depends on I.
4005              
4006             XopENTRY(XOP *xop, which)','name' => 'XopENTRY'},'newSVREF' => {'text' => '','name' => 'newSVREF'},'toUPPER' => {'text' => 'Converts the specified character to uppercase in the platform\'s native
4007             character set, if possible; otherwise returns the input character itself.
4008              
4009             char toUPPER(char ch)','name' => 'toUPPER'},'sv_catpvs_flags' => {'text' => 'Like C, but takes a literal string instead of a
4010             string/length pair.
4011              
4012             void sv_catpvs_flags(SV* sv, const char* s, I32 flags)','name' => 'sv_catpvs_flags'},'is_lvalue_sub' => {'text' => '','name' => 'is_lvalue_sub'},'is_utf8_string_loc' => {'text' => 'Like is_utf8_string() but stores the location of the failure (in the
4013             case of "utf8ness failure") or the location s+len (in the case of
4014             "utf8ness success") in the C.
4015              
4016             See also is_utf8_string_loclen() and is_utf8_string().
4017              
4018             bool is_utf8_string_loc(const U8 *s, STRLEN len, const U8 **p)','name' => 'is_utf8_string_loc'},'sv_gets' => {'text' => 'Get a line from the filehandle and store it into the SV, optionally
4019             appending to the currently-stored string.
4020              
4021             char* sv_gets(SV *const sv, PerlIO *const fp, I32 append)','name' => 'sv_gets'},'SvSetSV_nosteal' => {'text' => 'Calls a non-destructive version of C if dsv is not the same as
4022             ssv. May evaluate arguments more than once.
4023              
4024             void SvSetSV_nosteal(SV* dsv, SV* ssv)','name' => 'SvSetSV_nosteal'},'dUNDERBAR' => {'text' => 'Sets up any variable needed by the C macro. It used to define
4025             C, but it is currently a noop. However, it is strongly advised
4026             to still use it for ensuring past and future compatibility.
4027              
4028             dUNDERBAR;','name' => 'dUNDERBAR'},'sv_uv' => {'text' => 'A private implementation of the C macro for compilers which can\'t
4029             cope with complex macro expressions. Always use the macro instead.
4030              
4031             UV sv_uv(SV* sv)','name' => 'sv_uv'},'ptr_table_split' => {'text' => '','name' => 'ptr_table_split'},'foldEQ_utf8' => {'text' => 'Returns true if the leading portions of the strings s1 and s2 (either or both
4032             of which may be in UTF-8) are the same case-insensitively; false otherwise.
4033             How far into the strings to compare is determined by other input parameters.
4034              
4035             If u1 is true, the string s1 is assumed to be in UTF-8-encoded Unicode;
4036             otherwise it is assumed to be in native 8-bit encoding. Correspondingly for u2
4037             with respect to s2.
4038              
4039             If the byte length l1 is non-zero, it says how far into s1 to check for fold
4040             equality. In other words, s1+l1 will be used as a goal to reach. The
4041             scan will not be considered to be a match unless the goal is reached, and
4042             scanning won\'t continue past that goal. Correspondingly for l2 with respect to
4043             s2.
4044              
4045             If pe1 is non-NULL and the pointer it points to is not NULL, that pointer is
4046             considered an end pointer beyond which scanning of s1 will not continue under
4047             any circumstances. This means that if both l1 and pe1 are specified, and pe1
4048             is less than s1+l1, the match will never be successful because it can never
4049             get as far as its goal (and in fact is asserted against). Correspondingly for
4050             pe2 with respect to s2.
4051              
4052             At least one of s1 and s2 must have a goal (at least one of l1 and l2 must be
4053             non-zero), and if both do, both have to be
4054             reached for a successful match. Also, if the fold of a character is multiple
4055             characters, all of them must be matched (see tr21 reference below for
4056             \'folding\').
4057              
4058             Upon a successful match, if pe1 is non-NULL,
4059             it will be set to point to the beginning of the I character of s1 beyond
4060             what was matched. Correspondingly for pe2 and s2.
4061              
4062             For case-insensitiveness, the "casefolding" of Unicode is used
4063             instead of upper/lowercasing both the characters, see
4064             http://www.unicode.org/unicode/reports/tr21/ (Case Mappings).
4065              
4066             I32 foldEQ_utf8(const char *s1, char **pe1, UV l1, bool u1, const char *s2, char **pe2, UV l2, bool u2)','name' => 'foldEQ_utf8'},'Nullch' => {'text' => 'Null character pointer. (No longer available when C is defined.)','name' => 'Nullch'},'get_context' => {'text' => '','name' => 'get_context'},'vcroak' => {'text' => 'This is an XS interface to Perl\'s C function.
4067              
4068             C and C are a sprintf-style format pattern and encapsulated
4069             argument list. These are used to generate a string message. If the
4070             message does not end with a newline, then it will be extended with
4071             some indication of the current location in the code, as described for
4072             L.
4073              
4074             The error message will be used as an exception, by default
4075             returning control to the nearest enclosing C, but subject to
4076             modification by a C<$SIG{__DIE__}> handler. In any case, the C
4077             function never returns normally.
4078              
4079             For historical reasons, if C is null then the contents of C
4080             (C<$@>) will be used as an error message or object instead of building an
4081             error message from arguments. If you want to throw a non-string object,
4082             or build an error message in an SV yourself, it is preferable to use
4083             the L function, which does not involve clobbering C.
4084              
4085             void vcroak(const char *pat, va_list *args)','name' => 'vcroak'},'parse_fullexpr' => {'text' => 'Parse a single complete Perl expression. This allows the full
4086             expression grammar, including the lowest-precedence operators such
4087             as C. The expression must be followed (and thus terminated) by a
4088             token that an expression would normally be terminated by: end-of-file,
4089             closing bracketing punctuation, semicolon, or one of the keywords that
4090             signals a postfix expression-statement modifier. If I includes
4091             C then the expression is optional, otherwise it is
4092             mandatory. It is up to the caller to ensure that the dynamic parser
4093             state (L et al) is correctly set to reflect the source of
4094             the code to be parsed and the lexical context for the expression.
4095              
4096             The op tree representing the expression is returned. If an optional
4097             expression is absent, a null pointer is returned, otherwise the pointer
4098             will be non-null.
4099              
4100             If an error occurs in parsing or compilation, in most cases a valid op
4101             tree is returned anyway. The error is reflected in the parser state,
4102             normally resulting in a single exception at the top level of parsing
4103             which covers all the compilation errors that occurred. Some compilation
4104             errors, however, will throw an exception immediately.
4105              
4106             NOTE: this function is experimental and may change or be
4107             removed without notice.
4108              
4109             OP * parse_fullexpr(U32 flags)','name' => 'parse_fullexpr'},'sv_magicext' => {'text' => 'Adds magic to an SV, upgrading it if necessary. Applies the
4110             supplied vtable and returns a pointer to the magic added.
4111              
4112             Note that C will allow things that C will not.
4113             In particular, you can add magic to SvREADONLY SVs, and add more than
4114             one instance of the same \'how\'.
4115              
4116             If C is greater than zero then a C I of C is
4117             stored, if C is zero then C is stored as-is and - as another
4118             special case - if C<(name && namlen == HEf_SVKEY)> then C is assumed
4119             to contain an C and is stored as-is with its REFCNT incremented.
4120              
4121             (This is now used as a subroutine by C.)
4122              
4123             MAGIC * sv_magicext(SV *const sv, SV *const obj, const int how, const MGVTBL *const vtbl, const char *const name, const I32 namlen)','name' => 'sv_magicext'},'to_uni_title' => {'text' => '','name' => 'to_uni_title'},'gv_fullname4' => {'text' => '','name' => 'gv_fullname4'},'is_uni_idfirst' => {'text' => '','name' => 'is_uni_idfirst'},'av_push' => {'text' => 'Pushes an SV onto the end of the array. The array will grow automatically
4124             to accommodate the addition. This takes ownership of one reference count.
4125              
4126             void av_push(AV *av, SV *val)','name' => 'av_push'},'XSRETURN_NO' => {'text' => 'Return C<&PL_sv_no> from an XSUB immediately. Uses C.
4127              
4128             XSRETURN_NO;','name' => 'XSRETURN_NO'},'POPn' => {'text' => 'Pops a double off the stack.
4129              
4130             NV POPn','name' => 'POPn'},'newRV_noinc' => {'text' => 'Creates an RV wrapper for an SV. The reference count for the original
4131             SV is B incremented.
4132              
4133             SV* newRV_noinc(SV *const sv)','name' => 'newRV_noinc'},'unsharepvn' => {'text' => '','name' => 'unsharepvn'},'my_memcmp' => {'text' => '','name' => 'my_memcmp'},'newSLICEOP' => {'text' => 'Constructs, checks, and returns an C (list slice) op. I
4134             gives the eight bits of C, except that C will
4135             be set automatically, and, shifted up eight bits, the eight bits of
4136             C, except that the bit with value 1 or 2 is automatically
4137             set as required. I and I supply the parameters of
4138             the slice; they are consumed by this function and become part of the
4139             constructed op tree.
4140              
4141             OP * newSLICEOP(I32 flags, OP *subscript, OP *listval)','name' => 'newSLICEOP'},'mfree' => {'text' => '','name' => 'mfree'},'save_re_context' => {'text' => '','name' => 'save_re_context'},'hv_iterinit' => {'text' => 'Prepares a starting point to traverse a hash table. Returns the number of
4142             keys in the hash (i.e. the same as C). The return value is
4143             currently only meaningful for hashes without tie magic.
4144              
4145             NOTE: Before version 5.004_65, C used to return the number of
4146             hash buckets that happen to be in use. If you still need that esoteric
4147             value, you can get it through the macro C.
4148              
4149              
4150             I32 hv_iterinit(HV *hv)','name' => 'hv_iterinit'}};};
4151              
4152 6         205 my $self = bless({
4153             'index' => $VAR1,
4154             perl_version => '5.014000',
4155             } => $class);
4156 6         1274 return $self;
4157             }
4158              
4159             1;