File Coverage

blib/lib/Perl/APIReference/V5_008_009.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_008_009;
2 1     1   8 use strict;
  1         2  
  1         51  
3 1     1   5 use warnings;
  1         2  
  1         28  
4 1     1   4 use parent 'Perl::APIReference';
  1         1  
  1         7  
5              
6             sub new {
7 1     1 1 2 my $class = shift;
8 1         1 my $VAR1;
9              
10 1         1 do{$VAR1 = {'hv_store_ent' => {'text' => 'Stores C in a hash. The hash key is specified as C. The C
  1         796  
11             parameter is the precomputed hash value; if it is zero then Perl will
12             compute it. The return value is the new hash entry so created. It will be
13             NULL if the operation failed or if the value did not need to be actually
14             stored within the hash (as in the case of tied hashes). Otherwise the
15             contents of the return value can be accessed using the C macros
16             described here. Note that the caller is responsible for suitably
17             incrementing the reference count of C before the call, and
18             decrementing it if the function returned NULL. Effectively a successful
19             hv_store_ent takes ownership of one reference to C. This is
20             usually what you want; a newly created SV has a reference count of one, so
21             if all your code does is create SVs then store them in a hash, hv_store
22             will own the only reference to the new SV, and your code doesn\'t need to do
23             anything further to tidy up. Note that hv_store_ent only reads the C;
24             unlike C it does not take ownership of it, so maintaining the correct
25             reference count on C is entirely the caller\'s responsibility. hv_store
26             is not implemented as a call to hv_store_ent, and does not create a temporary
27             SV for the key, so if your key data is not already in SV form then use
28             hv_store in preference to hv_store_ent.
29              
30             See L for more
31             information on how to use this function on tied hashes.
32              
33             HE* hv_store_ent(HV* tb, SV* key, SV* val, U32 hash)','name' => 'hv_store_ent'},'gv_stashsv' => {'text' => 'Returns a pointer to the stash for a specified package. See C.
34              
35             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
36             the subs.','name' => 'newXSproto'},'strGE' => {'text' => 'Test two strings to see if the first, C, is greater than or equal to
37             the second, C. Returns true or false.
38              
39             bool strGE(char* s1, char* s2)','name' => 'strGE'},'form' => {'text' => 'Takes a sprintf-style format pattern and conventional
40             (non-SV) arguments and returns the formatted string.
41              
42             (char *) Perl_form(pTHX_ const char* pat, ...)
43              
44             can be used any place a string (char *) is required:
45              
46             char * s = Perl_form("%d.%d",major,minor);
47              
48             Uses a single private buffer so if you want to format several strings you
49             must explicitly copy the earlier strings away (and free the copies when you
50             are done).
51              
52             char* form(const char* pat, ...)','name' => 'form'},'SvPV' => {'text' => 'Returns a pointer to the string in the SV, or a stringified form of
53             the SV if the SV does not contain a string. The SV may cache the
54             stringified version becoming C. Handles \'get\' magic. See also
55             C for a version which guarantees to evaluate sv only once.
56              
57             char* SvPV(SV* sv, STRLEN len)','name' => 'SvPV'},'is_utf8_string' => {'text' => 'Returns true if first C bytes of the given string form a valid
58             UTF-8 string, false otherwise. Note that \'a valid UTF-8 string\' does
59             not mean \'a string that contains code points above 0x7F encoded in UTF-8\'
60             because a valid ASCII string is a valid UTF-8 string.
61              
62             See also is_utf8_string_loclen() and is_utf8_string_loc().
63              
64             bool is_utf8_string(U8 *s, STRLEN len)','name' => 'is_utf8_string'},'sv_insert' => {'text' => 'Inserts a string at the specified offset/length within the SV. Similar to
65             the Perl substr() function.
66              
67             void sv_insert(SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen)','name' => 'sv_insert'},'SvPOK' => {'text' => 'Returns a U32 value indicating whether the SV contains a character
68             string.
69              
70             U32 SvPOK(SV* sv)','name' => 'SvPOK'},'sv_vsetpvf_mg' => {'text' => 'Like C, but also handles \'set\' magic.
71              
72             Usually used via its frontend C.
73              
74             void sv_vsetpvf_mg(SV* sv, const char* pat, va_list* args)','name' => 'sv_vsetpvf_mg'},'sv_destroyable' => {'text' => 'Dummy routine which reports that object can be destroyed when there is no
75             sharing module present. It ignores its single SV argument, and returns
76             \'true\'. Exists to avoid test for a NULL function pointer and because it
77             could potentially warn under some level of strict-ness.
78              
79             bool sv_destroyable(SV *sv)','name' => 'sv_destroyable'},'SvPVutf8' => {'text' => 'Like C, but converts sv to utf8 first if necessary.
80              
81             char* SvPVutf8(SV* sv, STRLEN len)','name' => 'SvPVutf8'},'XS' => {'text' => 'Macro to declare an XSUB and its C parameter list. This is handled by
82             C.','name' => 'XS'},'scan_oct' => {'text' => 'For backwards compatibility. Use C instead.
83              
84             NV scan_oct(char* start, STRLEN len, STRLEN* retlen)','name' => 'scan_oct'},'sv_setpvn' => {'text' => 'Copies a string into an SV. The C parameter indicates the number of
85             bytes to be copied. If the C argument is NULL the SV will become
86             undefined. Does not handle \'set\' magic. See C.
87              
88             void sv_setpvn(SV* sv, const char* ptr, STRLEN len)','name' => 'sv_setpvn'},'mg_magical' => {'text' => 'Turns on the magical status of an SV. See C.
89              
90             void mg_magical(SV* sv)','name' => 'mg_magical'},'newSVrv' => {'text' => 'Creates a new SV for the RV, C, to point to. If C is not an RV then
91             it will be upgraded to one. If C is non-null then the new SV will
92             be blessed in the specified package. The new SV is returned and its
93             reference count is 1.
94              
95             SV* newSVrv(SV* rv, const char* classname)','name' => 'newSVrv'},'strnEQ' => {'text' => 'Test two strings to see if they are equal. The C parameter indicates
96             the number of bytes to compare. Returns true or false. (A wrapper for
97             C).
98              
99             bool strnEQ(char* s1, char* s2, STRLEN len)','name' => 'strnEQ'},'find_runcv' => {'text' => 'Locate the CV corresponding to the currently executing sub or eval.
100             If db_seqp is non_null, skip CVs that are in the DB package and populate
101             *db_seqp with the cop sequence number at the point that the DB:: code was
102             entered. (allows debuggers to eval in the scope of the breakpoint rather
103             than in the scope of the debugger itself).
104              
105             CV* find_runcv(U32 *db_seqp)','name' => 'find_runcv'},'PoisonWith' => {'text' => 'Fill up memory with a byte pattern (a byte repeated over and over
106             again) that hopefully catches attempts to access uninitialized memory.
107              
108             void PoisonWith(void* dest, int nitems, type, U8 byte)','name' => 'PoisonWith'},'utf8n_to_uvuni' => {'text' => 'Bottom level UTF-8 decode routine.
109             Returns the Unicode code point value of the first character in the string C
110             which is assumed to be in UTF-8 encoding and no longer than C;
111             C will be set to the length, in bytes, of that character.
112              
113             If C does not point to a well-formed UTF-8 character, the behaviour
114             is dependent on the value of C: if it contains UTF8_CHECK_ONLY,
115             it is assumed that the caller will raise a warning, and this function
116             will silently just set C to C<-1> and return zero. If the
117             C does not contain UTF8_CHECK_ONLY, warnings about
118             malformations will be given, C will be set to the expected
119             length of the UTF-8 character in bytes, and zero will be returned.
120              
121             The C can also contain various flags to allow deviations from
122             the strict UTF-8 encoding (see F).
123              
124             Most code should use utf8_to_uvchr() rather than call this directly.
125              
126             UV utf8n_to_uvuni(U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)','name' => 'utf8n_to_uvuni'},'av_create_and_unshift_one' => {'text' => 'Unshifts an SV onto the beginning of the array, creating the array if
127             necessary.
128             A small internal helper function to remove a commonly duplicated idiom.
129              
130             NOTE: this function is experimental and may change or be
131             removed without notice.
132              
133             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.
134              
135             void SvNIOK_off(SV* sv)','name' => 'SvNIOK_off'},'newSVpvn_utf8' => {'text' => 'Creates a new SV and copies a string into it. If utf8 is true, calls
136             C on the new SV. Implemented as a wrapper around C.
137              
138             SV* newSVpvn_utf8(NULLOK const char* s, STRLEN len, U32 utf8)','name' => 'newSVpvn_utf8'},'sv_magic' => {'text' => 'Adds magic to an SV. First upgrades C to type C if necessary,
139             then adds a new magic item of type C to the head of the magic list.
140              
141             See C (which C now calls) for a description of the
142             handling of the C and C arguments.
143              
144             You need to use C to add magic to SvREADONLY SVs and also
145             to add more than one instance of the same \'how\'.
146              
147             void sv_magic(SV* sv, SV* obj, int how, const char* name, I32 namlen)','name' => 'sv_magic'},'dMARK' => {'text' => 'Declare a stack marker variable, C, for the XSUB. See C and
148             C.
149              
150             dMARK;','name' => 'dMARK'},'sv_utf8_upgrade_flags' => {'text' => 'Converts the PV of an SV to its UTF-8-encoded form.
151             Forces the SV to string form if it is not already.
152             Always sets the SvUTF8 flag to avoid future validity checks even
153             if all the bytes have hibit clear. If C has C bit set,
154             will C on C if appropriate, else not. C and
155             C are implemented in terms of this function.
156              
157             This is not as a general purpose byte encoding to Unicode interface:
158             use the Encode extension for that.
159              
160             STRLEN sv_utf8_upgrade_flags(SV *sv, I32 flags)','name' => 'sv_utf8_upgrade_flags'},'ibcmp_utf8' => {'text' => 'Return true if the strings s1 and s2 differ case-insensitively, false
161             if not (if they are equal case-insensitively). If u1 is true, the
162             string s1 is assumed to be in UTF-8-encoded Unicode. If u2 is true,
163             the string s2 is assumed to be in UTF-8-encoded Unicode. If u1 or u2
164             are false, the respective string is assumed to be in native 8-bit
165             encoding.
166              
167             If the pe1 and pe2 are non-NULL, the scanning pointers will be copied
168             in there (they will point at the beginning of the I character).
169             If the pointers behind pe1 or pe2 are non-NULL, they are the end
170             pointers beyond which scanning will not continue under any
171             circumstances. If the byte lengths l1 and l2 are non-zero, s1+l1 and
172             s2+l2 will be used as goal end pointers that will also stop the scan,
173             and which qualify towards defining a successful match: all the scans
174             that define an explicit length must reach their goal pointers for
175             a match to succeed).
176              
177             For case-insensitiveness, the "casefolding" of Unicode is used
178             instead of upper/lowercasing both the characters, see
179             http://www.unicode.org/unicode/reports/tr21/ (Case Mappings).
180              
181             I32 ibcmp_utf8(const char* a, char **pe1, UV l1, bool u1, const char* b, char **pe2, UV l2, bool u2)','name' => 'ibcmp_utf8'},'SvREFCNT_inc_void' => {'text' => 'Same as SvREFCNT_inc, but can only be used if you don\'t need the
182             return value. The macro doesn\'t need to return a meaningful value.
183              
184             void SvREFCNT_inc_void(SV* sv)','name' => 'SvREFCNT_inc_void'},'mXPUSHp' => {'text' => 'Push a string onto the stack, extending the stack if necessary. The C
185             indicates the length of the string. Does not use C. See also C,
186             C and C.
187              
188             void mXPUSHp(char* str, STRLEN len)','name' => 'mXPUSHp'},'CvSTASH' => {'text' => 'Returns the stash of the CV.
189              
190             HV* CvSTASH(CV* cv)','name' => 'CvSTASH'},'gv_const_sv' => {'text' => 'If C is a typeglob whose subroutine entry is a constant sub eligible for
191             inlining, or C is a placeholder reference that would be promoted to such
192             a typeglob, then returns the value returned by the sub. Otherwise, returns
193             NULL.
194              
195             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.
196             The target SV physically takes over ownership of the body of the source SV
197             and inherits its flags; however, the target keeps any magic it owns,
198             and any magic in the source is discarded.
199             Note that this is a rather specialist SV copying operation; most of the
200             time you\'ll want to use C or one of its many macro front-ends.
201              
202             void sv_replace(SV* sv, SV* nsv)','name' => 'sv_replace'},'utf8n_to_uvchr' => {'text' => 'flags
203              
204             Returns the native character value of the first character in the string
205             C
206             which is assumed to be in UTF-8 encoding; C will be set to the
207             length, in bytes, of that character.
208              
209             Allows length and flags to be passed to low level routine.
210              
211             UV utf8n_to_uvchr(U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags)','name' => 'utf8n_to_uvchr'},'G_ARRAY' => {'text' => 'Used to indicate list context. See C, C and
212             L.','name' => 'G_ARRAY'},'XS_VERSION_BOOTCHECK' => {'text' => 'Macro to verify that a PM module\'s $VERSION variable matches the XS
213             module\'s C variable. This is usually handled automatically by
214             C. See L.
215              
216             XS_VERSION_BOOTCHECK;','name' => 'XS_VERSION_BOOTCHECK'},'SvROK' => {'text' => 'Tests if the SV is an RV.
217              
218             U32 SvROK(SV* sv)','name' => 'SvROK'},'mXPUSHn' => {'text' => 'Push a double onto the stack, extending the stack if necessary.
219             Does not use C. See also C, C and C.
220              
221             void mXPUSHn(NV nv)','name' => 'mXPUSHn'},'sv_unref' => {'text' => 'Unsets the RV status of the SV, and decrements the reference count of
222             whatever was being referenced by the RV. This can almost be thought of
223             as a reversal of C. This is C with the C
224             being zero. See C.
225              
226             void sv_unref(SV* sv)','name' => 'sv_unref'},'SvSETMAGIC' => {'text' => 'Invokes C on an SV if it has \'set\' magic. This macro evaluates its
227             argument more than once.
228              
229             void SvSETMAGIC(SV* sv)','name' => 'SvSETMAGIC'},'G_EVAL' => {'text' => 'Used to force a Perl C wrapper around a callback. See
230             L.','name' => 'G_EVAL'},'sv_catsv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
231              
232             void sv_catsv_mg(SV *dstr, SV *sstr)','name' => 'sv_catsv_mg'},'call_argv' => {'text' => 'Performs a callback to the specified Perl sub. See L.
233              
234             NOTE: the perl_ form of this function is deprecated.
235              
236             I32 call_argv(const char* sub_name, I32 flags, char** argv)','name' => 'call_argv'},'SvPV_nolen' => {'text' => 'Returns a pointer to the string in the SV, or a stringified form of
237             the SV if the SV does not contain a string. The SV may cache the
238             stringified form becoming C. Handles \'get\' magic.
239              
240             char* SvPV_nolen(SV* sv)','name' => 'SvPV_nolen'},'perl_clone' => {'text' => 'Create and return a new interpreter by cloning the current one.
241              
242             perl_clone takes these flags as parameters:
243              
244             CLONEf_COPY_STACKS - is used to, well, copy the stacks also,
245             without it we only clone the data and zero the stacks,
246             with it we copy the stacks and the new perl interpreter is
247             ready to run at the exact same point as the previous one.
248             The pseudo-fork code uses COPY_STACKS while the
249             threads->create doesn\'t.
250              
251             CLONEf_KEEP_PTR_TABLE
252             perl_clone keeps a ptr_table with the pointer of the old
253             variable as a key and the new variable as a value,
254             this allows it to check if something has been cloned and not
255             clone it again but rather just use the value and increase the
256             refcount. If KEEP_PTR_TABLE is not set then perl_clone will kill
257             the ptr_table using the function
258             C,
259             reason to keep it around is if you want to dup some of your own
260             variable who are outside the graph perl scans, example of this
261             code is in threads.xs create
262              
263             CLONEf_CLONE_HOST
264             This is a win32 thing, it is ignored on unix, it tells perls
265             win32host code (which is c++) to clone itself, this is needed on
266             win32 if you want to run two threads at the same time,
267             if you just want to do some stuff in a separate perl interpreter
268             and then throw it away and return to the original one,
269             you don\'t need to do anything.
270              
271             PerlInterpreter* perl_clone(PerlInterpreter* interp, UV flags)','name' => 'perl_clone'},'sv_setnv' => {'text' => 'Copies a double into the given SV, upgrading first if necessary.
272             Does not handle \'set\' magic. See also C.
273              
274             void sv_setnv(SV* sv, NV num)','name' => 'sv_setnv'},'sv_2nv' => {'text' => 'Return the num value of an SV, doing any necessary string or integer
275             conversion, magic etc. Normally used via the C and C
276             macros.
277              
278             NV sv_2nv(SV* sv)','name' => 'sv_2nv'},'SvREFCNT_inc_simple_NN' => {'text' => 'Same as SvREFCNT_inc_simple, but can only be used if you know I
279             is not NULL. Since we don\'t have to check the NULLness, it\'s faster
280             and smaller.
281              
282             SV* SvREFCNT_inc_simple_NN(SV* sv)','name' => 'SvREFCNT_inc_simple_NN'},'SvSetSV' => {'text' => 'Calls C if dsv is not the same as ssv. May evaluate arguments
283             more than once.
284              
285             void SvSetSV(SV* dsb, SV* ssv)','name' => 'SvSetSV'},'hv_fetchs' => {'text' => 'Like C, but takes a literal string instead of a string/length pair.
286              
287             SV** hv_fetchs(HV* tb, const char* key, I32 lval)','name' => 'hv_fetchs'},'newHV' => {'text' => 'Creates a new HV. The reference count is set to 1.
288              
289             HV* newHV()','name' => 'newHV'},'strnNE' => {'text' => 'Test two strings to see if they are different. The C parameter
290             indicates the number of bytes to compare. Returns true or false. (A
291             wrapper for C).
292              
293             bool strnNE(char* s1, char* s2, STRLEN len)','name' => 'strnNE'},'strNE' => {'text' => 'Test two strings to see if they are different. Returns true or
294             false.
295              
296             bool strNE(char* s1, char* s2)','name' => 'strNE'},'sv_pvutf8n_force' => {'text' => 'The backend for the C macro. Always use the macro instead.
297              
298             char* sv_pvutf8n_force(SV* sv, STRLEN* lp)','name' => 'sv_pvutf8n_force'},'savepv' => {'text' => 'Perl\'s version of C. Returns a pointer to a newly allocated
299             string which is a duplicate of C. The size of the string is
300             determined by C. The memory allocated for the new string can
301             be freed with the C function.
302              
303             char* savepv(const char* pv)','name' => 'savepv'},'SvNV_set' => {'text' => 'Set the value of the NV pointer in sv to val. See C.
304              
305             void SvNV_set(SV* sv, NV val)','name' => 'SvNV_set'},'bytes_from_utf8' => {'text' => 'Converts a string C of length C from UTF-8 into byte encoding.
306             Unlike C but like C, returns a pointer to
307             the newly-created string, and updates C to contain the new
308             length. Returns the original string if no conversion occurs, C
309             is unchanged. Do nothing if C points to 0. Sets C to
310             0 if C is converted or contains all 7bit characters.
311              
312             NOTE: this function is experimental and may change or be
313             removed without notice.
314              
315             U8* bytes_from_utf8(U8 *s, STRLEN *len, bool *is_utf8)','name' => 'bytes_from_utf8'},'newAV' => {'text' => 'Creates a new AV. The reference count is set to 1.
316              
317             AV* newAV()','name' => 'newAV'},'HvNAME' => {'text' => 'Returns the package name of a stash, or NULL if C isn\'t a stash.
318             See C, C.
319              
320             char* HvNAME(HV* stash)','name' => 'HvNAME'},'sv_recode_to_utf8' => {'text' => 'The encoding is assumed to be an Encode object, on entry the PV
321             of the sv is assumed to be octets in that encoding, and the sv
322             will be converted into Unicode (and UTF-8).
323              
324             If the sv already is UTF-8 (or if it is not POK), or if the encoding
325             is not a reference, nothing is done to the sv. If the encoding is not
326             an C Encoding object, bad things will happen.
327             (See F and L).
328              
329             The PV of the sv is returned.
330              
331             char* sv_recode_to_utf8(SV* sv, SV *encoding)','name' => 'sv_recode_to_utf8'},'av_make' => {'text' => 'Creates a new AV and populates it with a list of SVs. The SVs are copied
332             into the array, so they may be freed after the call to av_make. The new AV
333             will have a reference count of 1.
334              
335             AV* av_make(I32 size, SV** svp)','name' => 'av_make'},'SvUV' => {'text' => 'Coerces the given SV to an unsigned integer and returns it. See C
336             for a version which guarantees to evaluate sv only once.
337              
338             UV SvUV(SV* sv)','name' => 'SvUV'},'perl_run' => {'text' => 'Tells a Perl interpreter to run. See L.
339              
340             int perl_run(PerlInterpreter* interp)','name' => 'perl_run'},'sv_catsv_flags' => {'text' => 'Concatenates the string from SV C onto the end of the string in
341             SV C. Modifies C but not C. If C has C
342             bit set, will C on the SVs if appropriate, else not. C
343             and C are implemented in terms of this function.
344              
345             void sv_catsv_flags(SV* dsv, SV* ssv, I32 flags)','name' => 'sv_catsv_flags'},'SvPVutf8_nolen' => {'text' => 'Like C, but converts sv to utf8 first if necessary.
346              
347             char* SvPVutf8_nolen(SV* sv)','name' => 'SvPVutf8_nolen'},'sv_setpviv' => {'text' => 'Copies an integer into the given SV, also updating its string value.
348             Does not handle \'set\' magic. See C.
349              
350             void sv_setpviv(SV* sv, IV num)','name' => 'sv_setpviv'},'sv_true' => {'text' => 'Returns true if the SV has a true value by Perl\'s rules.
351             Use the C macro instead, which may call C or may
352             instead use an in-line version.
353              
354             I32 sv_true(SV *sv)','name' => 'sv_true'},'sv_derived_from' => {'text' => 'Returns a boolean indicating whether the SV is derived from the specified class
355             I. To check derivation at the Perl level, call C as a
356             normal Perl method.
357              
358             bool sv_derived_from(SV* sv, const char* name)','name' => 'sv_derived_from'},'SvIOK_on' => {'text' => 'Tells an SV that it is an integer.
359              
360             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
361             \'use bytes\' aware, handles get magic, and will coerce its args to strings
362             if necessary. See also C.
363              
364             I32 sv_cmp_locale(SV* sv1, SV* sv2)','name' => 'sv_cmp_locale'},'sv_catpvs' => {'text' => 'Like C, but takes a literal string instead of a string/length pair.
365              
366             void sv_catpvs(SV* sv, const char* s)','name' => 'sv_catpvs'},'hv_exists' => {'text' => 'Returns a boolean indicating whether the specified hash key exists. The
367             C is the length of the key.
368              
369             bool hv_exists(HV* tb, const char* key, I32 klen)','name' => 'hv_exists'},'dSP' => {'text' => 'Declares a local copy of perl\'s stack pointer for the XSUB, available via
370             the C macro. See C.
371              
372             dSP;','name' => 'dSP'},'Nullsv' => {'text' => 'Null SV pointer.','name' => 'Nullsv'},'mg_length' => {'text' => 'Report on the SV\'s length. See C.
373              
374             U32 mg_length(SV* sv)','name' => 'mg_length'},'SvPVX' => {'text' => 'Returns a pointer to the physical string in the SV. The SV must contain a
375             string.
376              
377             char* SvPVX(SV* sv)','name' => 'SvPVX'},'XPUSHi' => {'text' => 'Push an integer onto the stack, extending the stack if necessary. Handles
378             \'set\' magic. Uses C, so C or C should be called to
379             declare it. Do not call multiple C-oriented macros to return lists
380             from XSUB\'s - see C instead. See also C and C.
381              
382             void XPUSHi(IV iv)','name' => 'XPUSHi'},'HEf_SVKEY' => {'text' => 'This flag, used in the length slot of hash entries and magic structures,
383             specifies the structure contains an C pointer where a C pointer
384             is to be expected. (For information only--not to be used).','name' => 'HEf_SVKEY'},'utf8_length' => {'text' => 'Return the length of the UTF-8 char encoded string C in characters.
385             Stops at C (inclusive). If C s> or if the scan would end
386             up past C, croaks.
387              
388             STRLEN utf8_length(U8* s, U8 *e)','name' => 'utf8_length'},'SvTAINTED_on' => {'text' => 'Marks an SV as tainted if tainting is enabled.
389              
390             void SvTAINTED_on(SV* sv)','name' => 'SvTAINTED_on'},'SvIOK_only_UV' => {'text' => 'Tells and SV that it is an unsigned integer and disables all other OK bits.
391              
392             void SvIOK_only_UV(SV* sv)','name' => 'SvIOK_only_UV'},'sv_nolocking' => {'text' => 'Dummy routine which "locks" an SV when there is no locking module present.
393             Exists to avoid test for a NULL function pointer and because it could
394             potentially warn under some level of strict-ness.
395              
396             "Superseded" by sv_nosharing().
397              
398             void sv_nolocking(SV *sv)','name' => 'sv_nolocking'},'sv_vcatpvfn' => {'text' => 'Processes its arguments like C and appends the formatted output
399             to an SV. Uses an array of SVs if the C style variable argument list is
400             missing (NULL). When running with taint checks enabled, indicates via
401             C if results are untrustworthy (often due to the use of
402             locales).
403              
404             XXX Except that it maybe_tainted is never assigned to.
405              
406             Usually used via one of its frontends C and C.
407              
408             void sv_vcatpvfn(SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)','name' => 'sv_vcatpvfn'},'strLT' => {'text' => 'Test two strings to see if the first, C, is less than the second,
409             C. Returns true or false.
410              
411             bool strLT(char* s1, char* s2)','name' => 'strLT'},'av_shift' => {'text' => 'Shifts an SV off the beginning of the array. Returns C<&PL_sv_undef> if the
412             array is empty.
413              
414             SV* av_shift(AV* ar)','name' => 'av_shift'},'sv_pvutf8n' => {'text' => 'A private implementation of the C macro for compilers
415             which can\'t cope with complex macro expressions. Always use the macro
416             instead.
417              
418             char* sv_pvutf8n(SV *sv, STRLEN *len)','name' => 'sv_pvutf8n'},'newSV' => {'text' => 'Creates a new SV. A non-zero C parameter indicates the number of
419             bytes of preallocated string space the SV should have. An extra byte for a
420             trailing NUL is also reserved. (SvPOK is not set for the SV even if string
421             space is allocated.) The reference count for the new SV is set to 1.
422              
423             In 5.9.3, newSV() replaces the older NEWSV() API, and drops the first
424             parameter, I, a debug aid which allowed callers to identify themselves.
425             This aid has been superseded by a new build option, PERL_MEM_LOG (see
426             L). The older API is still there for use in XS
427             modules supporting older perls.
428              
429             SV* newSV(STRLEN len)','name' => 'newSV'},'sv_2pvutf8' => {'text' => 'Return a pointer to the UTF-8-encoded representation of the SV, and set *lp
430             to its length. May cause the SV to be upgraded to UTF-8 as a side-effect.
431              
432             Usually accessed via the C macro.
433              
434             char* sv_2pvutf8(SV* sv, STRLEN* lp)','name' => 'sv_2pvutf8'},'sv_nounlocking' => {'text' => 'Dummy routine which "unlocks" an SV when there is no locking module present.
435             Exists to avoid test for a NULL function pointer and because it could
436             potentially warn under some level of strict-ness.
437              
438             "Superseded" by sv_nosharing().
439              
440             void sv_nounlocking(SV *sv)','name' => 'sv_nounlocking'},'dITEMS' => {'text' => 'Sets up the C variable.
441             This is usually handled automatically by C by calling C.
442              
443             dITEMS;','name' => 'dITEMS'},'SvUV_set' => {'text' => 'Set the value of the UV pointer in sv to val. See C.
444              
445             void SvUV_set(SV* sv, UV val)','name' => 'SvUV_set'},'CopyD' => {'text' => 'Like C but returns dest. Useful for encouraging compilers to tail-call
446             optimise.
447              
448             void * CopyD(void* src, void* dest, int nitems, type)','name' => 'CopyD'},'sv_setiv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
449              
450             void sv_setiv_mg(SV *sv, IV i)','name' => 'sv_setiv_mg'},'PUTBACK' => {'text' => 'Closing bracket for XSUB arguments. This is usually handled by C.
451             See C and L for other uses.
452              
453             PUTBACK;','name' => 'PUTBACK'},'savesharedpvn' => {'text' => 'A version of C which allocates the duplicate string in memory
454             which is shared between threads. (With the specific difference that a NULL
455             pointer is not acceptable)
456              
457             char* savesharedpvn(const char *const pv, const STRLEN len)','name' => 'savesharedpvn'},'dAXMARK' => {'text' => 'Sets up the C variable and stack marker variable C.
458             This is usually handled automatically by C by calling C.
459              
460             dAXMARK;','name' => 'dAXMARK'},'SvCUR_set' => {'text' => 'Set the current length of the string which is in the SV. See C
461             and C.
462              
463             void SvCUR_set(SV* sv, STRLEN len)','name' => 'SvCUR_set'},'sv_2uv_flags' => {'text' => 'Return the unsigned integer value of an SV, doing any necessary string
464             conversion. If flags includes SV_GMAGIC, does an mg_get() first.
465             Normally used via the C and C macros.
466              
467             UV sv_2uv_flags(SV* sv, I32 flags)','name' => 'sv_2uv_flags'},'SvNOK' => {'text' => 'Returns a U32 value indicating whether the SV contains a double.
468              
469             U32 SvNOK(SV* sv)','name' => 'SvNOK'},'mPUSHn' => {'text' => 'Push a double onto the stack. The stack must have room for this element.
470             Does not use C. See also C, C and C.
471              
472             void mPUSHn(NV nv)','name' => 'mPUSHn'},'G_SCALAR' => {'text' => 'Used to indicate scalar context. See C, C, and
473             L.','name' => 'G_SCALAR'},'sv_reset' => {'text' => 'Underlying implementation for the C Perl function.
474             Note that the perl-level function is vaguely deprecated.
475              
476             void sv_reset(char* s, HV* stash)','name' => 'sv_reset'},'sv_2pv_flags' => {'text' => 'Returns a pointer to the string value of an SV, and sets *lp to its length.
477             If flags includes SV_GMAGIC, does an mg_get() first. Coerces sv to a string
478             if necessary.
479             Normally invoked via the C macro. C and C
480             usually end up here too.
481              
482             char* sv_2pv_flags(SV* sv, STRLEN* lp, I32 flags)','name' => 'sv_2pv_flags'},'SvTAINTED_off' => {'text' => 'Untaints an SV. Be I careful with this routine, as it short-circuits
483             some of Perl\'s fundamental security features. XS module authors should not
484             use this function unless they fully understand all the implications of
485             unconditionally untainting the value. Untainting should be done in the
486             standard perl fashion, via a carefully crafted regexp, rather than directly
487             untainting variables.
488              
489             void SvTAINTED_off(SV* sv)','name' => 'SvTAINTED_off'},'SvNVx' => {'text' => 'Coerces the given SV to a double and returns it. Guarantees to evaluate
490             C only once. Only use this if C is an expression with side effects,
491             otherwise use the more efficient C.
492              
493             NV SvNVx(SV* sv)','name' => 'SvNVx'},'require_pv' => {'text' => 'Tells Perl to C the file named by the string argument. It is
494             analogous to the Perl code C. It\'s even
495             implemented that way; consider using load_module instead.
496              
497             NOTE: the perl_ form of this function is deprecated.
498              
499             void require_pv(const char* pv)','name' => 'require_pv'},'sv_upgrade' => {'text' => 'Upgrade an SV to a more complex form. Generally adds a new body type to the
500             SV, then copies across as much information as possible from the old body.
501             You generally want to use the C macro wrapper. See also C.
502              
503             bool sv_upgrade(SV* sv, U32 mt)','name' => 'sv_upgrade'},'strEQ' => {'text' => 'Test two strings to see if they are equal. Returns true or false.
504              
505             bool strEQ(char* s1, char* s2)','name' => 'strEQ'},'hv_store' => {'text' => 'Stores an SV in a hash. The hash key is specified as C and C is
506             the length of the key. The C parameter is the precomputed hash
507             value; if it is zero then Perl will compute it. The return value will be
508             NULL if the operation failed or if the value did not need to be actually
509             stored within the hash (as in the case of tied hashes). Otherwise it can
510             be dereferenced to get the original C. Note that the caller is
511             responsible for suitably incrementing the reference count of C before
512             the call, and decrementing it if the function returned NULL. Effectively
513             a successful hv_store takes ownership of one reference to C. This is
514             usually what you want; a newly created SV has a reference count of one, so
515             if all your code does is create SVs then store them in a hash, hv_store
516             will own the only reference to the new SV, and your code doesn\'t need to do
517             anything further to tidy up. hv_store is not implemented as a call to
518             hv_store_ent, and does not create a temporary SV for the key, so if your
519             key data is not already in SV form then use hv_store in preference to
520             hv_store_ent.
521              
522             See L for more
523             information on how to use this function on tied hashes.
524              
525             SV** hv_store(HV* tb, const char* key, I32 klen, SV* val, U32 hash)','name' => 'hv_store'},'isUPPER' => {'text' => 'Returns a boolean indicating whether the C C is an uppercase
526             character.
527              
528             bool isUPPER(char ch)','name' => 'isUPPER'},'sv_setsv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
529              
530             void sv_setsv_mg(SV *dstr, SV *sstr)','name' => 'sv_setsv_mg'},'hv_fetch_ent' => {'text' => 'Returns the hash entry which corresponds to the specified key in the hash.
531             C must be a valid precomputed hash number for the given C, or 0
532             if you want the function to compute it. IF C is set then the fetch
533             will be part of a store. Make sure the return value is non-null before
534             accessing it. The return value when C is a tied hash is a pointer to a
535             static location, so be sure to make a copy of the structure if you need to
536             store it somewhere.
537              
538             See L for more
539             information on how to use this function on tied hashes.
540              
541             HE* hv_fetch_ent(HV* tb, SV* key, I32 lval, U32 hash)','name' => 'hv_fetch_ent'},'isLOWER' => {'text' => 'Returns a boolean indicating whether the C C is a lowercase
542             character.
543              
544             bool isLOWER(char ch)','name' => 'isLOWER'},'ENTER' => {'text' => 'Opening bracket on a callback. See C and L.
545              
546             ENTER;','name' => 'ENTER'},'hv_iterkey' => {'text' => 'Returns the key from the current position of the hash iterator. See
547             C.
548              
549             char* hv_iterkey(HE* entry, I32* retlen)','name' => 'hv_iterkey'},'PL_sv_no' => {'text' => 'This is the C SV. See C. Always refer to this as
550             C<&PL_sv_no>.
551              
552             SV PL_sv_no','name' => 'PL_sv_no'},'SvNOKp' => {'text' => 'Returns a U32 value indicating whether the SV contains a double. Checks the
553             B setting. Use C.
554              
555             U32 SvNOKp(SV* sv)','name' => 'SvNOKp'},'Newx' => {'text' => 'The XSUB-writer\'s interface to the C C function.
556              
557             In 5.9.3, Newx() and friends replace the older New() API, and drops
558             the first parameter, I, a debug aid which allowed callers to identify
559             themselves. This aid has been superseded by a new build option,
560             PERL_MEM_LOG (see L). The older API is still
561             there for use in XS modules supporting older perls.
562              
563             void Newx(void* ptr, int nitems, type)','name' => 'Newx'},'PUSHs' => {'text' => 'Push an SV onto the stack. The stack must have room for this element.
564             Does not handle \'set\' magic. Does not use C. See also C,
565             C and C.
566              
567             void PUSHs(SV* sv)','name' => 'PUSHs'},'sv_setuv' => {'text' => 'Copies an unsigned integer into the given SV, upgrading first if necessary.
568             Does not handle \'set\' magic. See also C.
569              
570             void sv_setuv(SV* sv, UV num)','name' => 'sv_setuv'},'SvUPGRADE' => {'text' => 'Used to upgrade an SV to a more complex form. Uses C to
571             perform the upgrade if necessary. See C.
572              
573             void SvUPGRADE(SV* sv, svtype type)','name' => 'SvUPGRADE'},'utf8_to_uvchr' => {'text' => 'Returns the native character value of the first character in the string C
574             which is assumed to be in UTF-8 encoding; C will be set to the
575             length, in bytes, of that character.
576              
577             If C does not point to a well-formed UTF-8 character, zero is
578             returned and retlen is set, if possible, to -1.
579              
580             UV utf8_to_uvchr(U8 *s, STRLEN *retlen)','name' => 'utf8_to_uvchr'},'nothreadhook' => {'text' => 'Stub that provides thread hook for perl_destruct when there are
581             no threads.
582              
583             int nothreadhook()','name' => 'nothreadhook'},'bytes_to_utf8' => {'text' => 'Converts a string C of length C from ASCII into UTF-8 encoding.
584             Returns a pointer to the newly-created string, and sets C to
585             reflect the new length.
586              
587             If you want to convert to UTF-8 from other encodings than ASCII,
588             see sv_recode_to_utf8().
589              
590             NOTE: this function is experimental and may change or be
591             removed without notice.
592              
593             U8* bytes_to_utf8(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
594             scalar.
595              
596             bool SvIsCOW_shared_hash(SV* sv)','name' => 'SvIsCOW_shared_hash'},'sv_pvn' => {'text' => 'A private implementation of the C macro for compilers which can\'t
597             cope with complex macro expressions. Always use the macro instead.
598              
599             char* sv_pvn(SV *sv, STRLEN *len)','name' => 'sv_pvn'},'sv_setref_iv' => {'text' => 'Copies an integer into a new SV, optionally blessing the SV. The C
600             argument will be upgraded to an RV. That RV will be modified to point to
601             the new SV. The C argument indicates the package for the
602             blessing. Set C to C to avoid the blessing. The new SV
603             will have a reference count of 1, and the RV will be returned.
604              
605             SV* sv_setref_iv(SV* rv, const char* classname, IV iv)','name' => 'sv_setref_iv'},'sv_chop' => {'text' => 'Efficient removal of characters from the beginning of the string buffer.
606             SvPOK(sv) must be true and the C must be a pointer to somewhere inside
607             the string buffer. The C becomes the first character of the adjusted
608             string. Uses the "OOK hack".
609             Beware: after this function returns, C and SvPVX_const(sv) may no longer
610             refer to the same chunk of data.
611              
612             void sv_chop(SV* sv, char* ptr)','name' => 'sv_chop'},'sv_backoff' => {'text' => 'Remove any string offset. You should normally use the C macro
613             wrapper instead.
614              
615             int sv_backoff(SV* sv)','name' => 'sv_backoff'},'sv_catsv_nomg' => {'text' => 'Like C but doesn\'t process magic.
616              
617             void sv_catsv_nomg(SV* dsv, SV* ssv)','name' => 'sv_catsv_nomg'},'XPUSHu' => {'text' => 'Push an unsigned integer onto the stack, extending the stack if necessary.
618             Handles \'set\' magic. Uses C, so C or C should be
619             called to declare it. Do not call multiple C-oriented macros to
620             return lists from XSUB\'s - see C instead. See also C and
621             C.
622              
623             void XPUSHu(UV uv)','name' => 'XPUSHu'},'sv_setuv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
624              
625             void sv_setuv_mg(SV *sv, UV u)','name' => 'sv_setuv_mg'},'XS_VERSION' => {'text' => 'The version identifier for an XS module. This is usually
626             handled automatically by C. See C.','name' => 'XS_VERSION'},'PL_na' => {'text' => 'A convenience variable which is typically used with C when one
627             doesn\'t care about the length of the string. It is usually more efficient
628             to either declare a local variable and use that instead or to use the
629             C macro.
630              
631             STRLEN PL_na','name' => 'PL_na'},'newSViv' => {'text' => 'Creates a new SV and copies an integer into it. The reference count for the
632             SV is set to 1.
633              
634             SV* newSViv(IV i)','name' => 'newSViv'},'sv_untaint' => {'text' => 'Untaint an SV. Use C instead.
635             void sv_untaint(SV* sv)','name' => 'sv_untaint'},'sv_setpv' => {'text' => 'Copies a string into an SV. The string must be null-terminated. Does not
636             handle \'set\' magic. See C.
637              
638             void sv_setpv(SV* sv, const char* ptr)','name' => 'sv_setpv'},'Newxz' => {'text' => 'The XSUB-writer\'s interface to the C C function. The allocated
639             memory is zeroed with C. See also C.
640              
641             void Newxz(void* ptr, int nitems, type)','name' => 'Newxz'},'SVt_PVHV' => {'text' => 'Type flag for hashes. See C.','name' => 'SVt_PVHV'},'SvGROW' => {'text' => 'Expands the character buffer in the SV so that it has room for the
642             indicated number of bytes (remember to reserve space for an extra trailing
643             NUL character). Calls C to perform the expansion if necessary.
644             Returns a pointer to the character buffer.
645              
646             char * SvGROW(SV* sv, STRLEN len)','name' => 'SvGROW'},'gv_fetchmethod' => {'text' => 'See L.
647              
648             GV* gv_fetchmethod(HV* stash, const char* name)','name' => 'gv_fetchmethod'},'dMULTICALL' => {'text' => 'Declare local variables for a multicall. See L.
649              
650             dMULTICALL;','name' => 'dMULTICALL'},'sv_catpv' => {'text' => 'Concatenates the string onto the end of the string which is in the SV.
651             If the SV has the UTF-8 status set, then the bytes appended should be
652             valid UTF-8. Handles \'get\' magic, but not \'set\' magic. See C.
653              
654             void sv_catpv(SV* sv, const char* ptr)','name' => 'sv_catpv'},'sv_len' => {'text' => 'Returns the length of the string in the SV. Handles magic and type
655             coercion. See also C, which gives raw access to the xpv_cur slot.
656              
657             STRLEN sv_len(SV* sv)','name' => 'sv_len'},'SvPVbyte_nolen' => {'text' => 'Like C, but converts sv to byte representation first if necessary.
658              
659             char* SvPVbyte_nolen(SV* sv)','name' => 'SvPVbyte_nolen'},'sv_pvutf8' => {'text' => 'Use the C macro instead
660              
661             char* sv_pvutf8(SV *sv)','name' => 'sv_pvutf8'},'SVt_PVAV' => {'text' => 'Type flag for arrays. See C.','name' => 'SVt_PVAV'},'LEAVE' => {'text' => 'Closing bracket on a callback. See C and L.
662              
663             LEAVE;','name' => 'LEAVE'},'hv_undef' => {'text' => 'Undefines the hash.
664              
665             void hv_undef(HV* tb)','name' => 'hv_undef'},'SvSetMagicSV_nosteal' => {'text' => 'Like C, but does any set magic required afterwards.
666              
667             void SvSetMagicSV_nosteal(SV* dsv, SV* ssv)','name' => 'SvSetMagicSV_nosteal'},'hv_delete_ent' => {'text' => 'Deletes a key/value pair in the hash. The value SV is removed from the
668             hash and returned to the caller. The C value will normally be zero;
669             if set to G_DISCARD then NULL will be returned. C can be a valid
670             precomputed hash value, or 0 to ask for it to be computed.
671              
672             SV* hv_delete_ent(HV* tb, SV* key, I32 flags, U32 hash)','name' => 'hv_delete_ent'},'CLASS' => {'text' => 'Variable which is setup by C to indicate the
673             class name for a C++ XS constructor. This is always a C. See C.
674              
675             char* CLASS','name' => 'CLASS'},'savesvpv' => {'text' => 'A version of C/C which gets the string to duplicate from
676             the passed in SV using C
677              
678             char* savesvpv(SV* sv)','name' => 'savesvpv'},'sv_isobject' => {'text' => 'Returns a boolean indicating whether the SV is an RV pointing to a blessed
679             object. If the SV is not an RV, or if the object is not blessed, then this
680             will return false.
681              
682             int sv_isobject(SV* sv)','name' => 'sv_isobject'},'sv_pvn_force_flags' => {'text' => 'Get a sensible string out of the SV somehow.
683             If C has C bit set, will C on C if
684             appropriate, else not. C and C are
685             implemented in terms of this function.
686             You normally want to use the various wrapper macros instead: see
687             C and C
688              
689             char* sv_pvn_force_flags(SV* sv, STRLEN* lp, I32 flags)','name' => 'sv_pvn_force_flags'},'HeKLEN' => {'text' => 'If this is negative, and amounts to C, it indicates the entry
690             holds an C key. Otherwise, holds the actual length of the key. Can
691             be assigned to. The C macro is usually preferable for finding key
692             lengths.
693              
694             STRLEN HeKLEN(HE* he)','name' => 'HeKLEN'},'to_utf8_title' => {'text' => 'Convert the UTF-8 encoded character at p to its titlecase version and
695             store that in UTF-8 in ustrp and its length in bytes in lenp. Note
696             that the ustrp needs to be at least UTF8_MAXBYTES_CASE+1 bytes since the
697             titlecase version may be longer than the original character.
698              
699             The first character of the titlecased version is returned
700             (but note, as explained above, that there may be more.)
701              
702             UV to_utf8_title(U8 *p, U8* ustrp, STRLEN *lenp)','name' => 'to_utf8_title'},'mPUSHi' => {'text' => 'Push an integer onto the stack. The stack must have room for this element.
703             Does not use C. See also C, C and C.
704              
705             void mPUSHi(IV iv)','name' => 'mPUSHi'},'PUSHn' => {'text' => 'Push a double onto the stack. The stack must have room for this element.
706             Handles \'set\' magic. Uses C, so C or C should be
707             called to declare it. Do not call multiple C-oriented macros to
708             return lists from XSUB\'s - see C instead. See also C and
709             C.
710              
711             void PUSHn(NV nv)','name' => 'PUSHn'},'SvIV' => {'text' => 'Coerces the given SV to an integer and returns it. See C for a
712             version which guarantees to evaluate sv only once.
713              
714             IV SvIV(SV* sv)','name' => 'SvIV'},'PL_sv_yes' => {'text' => 'This is the C SV. See C. Always refer to this as
715             C<&PL_sv_yes>.
716              
717             SV PL_sv_yes','name' => 'PL_sv_yes'},'sv_nosharing' => {'text' => 'Dummy routine which "shares" an SV when there is no sharing module present.
718             Or "locks" it. Or "unlocks" it. In other words, ignores its single SV argument.
719             Exists to avoid test for a NULL function pointer and because it could
720             potentially warn under some level of strict-ness.
721              
722             void sv_nosharing(SV *sv)','name' => 'sv_nosharing'},'SvUTF8_off' => {'text' => 'Unsets the UTF-8 status of an SV.
723              
724             void SvUTF8_off(SV *sv)','name' => 'SvUTF8_off'},'looks_like_number' => {'text' => 'Test if the content of an SV looks like a number (or is a number).
725             C and C are treated as numbers (so will not issue a
726             non-numeric warning), even if your atof() doesn\'t grok them.
727              
728             I32 looks_like_number(SV* sv)','name' => 'looks_like_number'},'sv_catpv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
729              
730             void sv_catpv_mg(SV *sv, const char *ptr)','name' => 'sv_catpv_mg'},'XSRETURN_EMPTY' => {'text' => 'Return an empty list from an XSUB immediately.
731              
732             XSRETURN_EMPTY;','name' => 'XSRETURN_EMPTY'},'sv_setref_uv' => {'text' => 'Copies an unsigned integer into a new SV, optionally blessing the SV. The C
733             argument will be upgraded to an RV. That RV will be modified to point to
734             the new SV. The C argument indicates the package for the
735             blessing. Set C to C to avoid the blessing. The new SV
736             will have a reference count of 1, and the RV will be returned.
737              
738             SV* sv_setref_uv(SV* rv, const char* classname, UV uv)','name' => 'sv_setref_uv'},'getcwd_sv' => {'text' => 'Fill the sv with current working directory
739              
740             int getcwd_sv(SV* sv)','name' => 'getcwd_sv'},'newSVpvs_share' => {'text' => 'Like C, but takes a literal string instead of a string/length
741             pair and omits the hash parameter.
742              
743             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
744             SV is set to 1. If C is zero, Perl will compute the length using
745             strlen(). For efficiency, consider using C instead.
746              
747             SV* newSVpv(const char* s, STRLEN len)','name' => 'newSVpv'},'sv_2pvbyte' => {'text' => 'Return a pointer to the byte-encoded representation of the SV, and set *lp
748             to its length. May cause the SV to be downgraded from UTF-8 as a
749             side-effect.
750              
751             Usually accessed via the C macro.
752              
753             char* sv_2pvbyte(SV* sv, STRLEN* lp)','name' => 'sv_2pvbyte'},'fbm_instr' => {'text' => 'Returns the location of the SV in the string delimited by C and
754             C. It returns C if the string can\'t be found. The C
755             does not have to be fbm_compiled, but the search will not be as fast
756             then.
757              
758             char* fbm_instr(unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags)','name' => 'fbm_instr'},'sv_setpvf' => {'text' => 'Works like C but copies the text into the SV instead of
759             appending it. Does not handle \'set\' magic. See C.
760              
761             void sv_setpvf(SV* sv, const char* pat, ...)','name' => 'sv_setpvf'},'XPUSHn' => {'text' => 'Push a double onto the stack, extending the stack if necessary. Handles
762             \'set\' magic. Uses C, so C or C should be called to
763             declare it. Do not call multiple C-oriented macros to return lists
764             from XSUB\'s - see C instead. See also C and C.
765              
766             void XPUSHn(NV nv)','name' => 'XPUSHn'},'SVt_PV' => {'text' => 'Pointer type flag for scalars. See C.','name' => 'SVt_PV'},'call_sv' => {'text' => 'Performs a callback to the Perl sub whose name is in the SV. See
767             L.
768              
769             NOTE: the perl_ form of this function is deprecated.
770              
771             I32 call_sv(SV* sv, VOL I32 flags)','name' => 'call_sv'},'strGT' => {'text' => 'Test two strings to see if the first, C, is greater than the second,
772             C. Returns true or false.
773              
774             bool strGT(char* s1, char* s2)','name' => 'strGT'},'mXPUSHs' => {'text' => 'Push an SV onto the stack, extending the stack if necessary and mortalizes
775             the SV. Does not use C. See also C and C.
776              
777             void mXPUSHs(SV* sv)','name' => 'mXPUSHs'},'sv_vcatpvf' => {'text' => 'Processes its arguments like C and appends the formatted output
778             to an SV. Does not handle \'set\' magic. See C.
779              
780             Usually used via its frontend C.
781              
782             void sv_vcatpvf(SV* sv, const char* pat, va_list* args)','name' => 'sv_vcatpvf'},'sv_pos_u2b' => {'text' => 'Converts the value pointed to by offsetp from a count of UTF-8 chars from
783             the start of the string, to a count of the equivalent number of bytes; if
784             lenp is non-zero, it does the same to lenp, but this time starting from
785             the offset, rather than from the start of the string. Handles magic and
786             type coercion.
787              
788             void sv_pos_u2b(SV* sv, I32* offsetp, I32* lenp)','name' => 'sv_pos_u2b'},'HeSVKEY_set' => {'text' => 'Sets the key to a given C, taking care to set the appropriate flags to
789             indicate the presence of an C key, and returns the same
790             C.
791              
792             SV* HeSVKEY_set(HE* he, SV* sv)','name' => 'HeSVKEY_set'},'POPl' => {'text' => 'Pops a long off the stack.
793              
794             long POPl','name' => 'POPl'},'SPAGAIN' => {'text' => 'Refetch the stack pointer. Used after a callback. See L.
795              
796             SPAGAIN;','name' => 'SPAGAIN'},'SvIOKp' => {'text' => 'Returns a U32 value indicating whether the SV contains an integer. Checks
797             the B setting. Use C.
798              
799             U32 SvIOKp(SV* sv)','name' => 'SvIOKp'},'get_cv' => {'text' => 'Uses C to get the length of C, then calls C.
800              
801             NOTE: the perl_ form of this function is deprecated.
802              
803             CV* get_cv(const char* name, I32 flags)','name' => 'get_cv'},'XST_mUNDEF' => {'text' => 'Place C<&PL_sv_undef> into the specified position C on the
804             stack.
805              
806             void XST_mUNDEF(int pos)','name' => 'XST_mUNDEF'},'SvUNLOCK' => {'text' => 'Releases a mutual exclusion lock on sv if a suitable module
807             has been loaded.
808              
809             void SvUNLOCK(SV* sv)','name' => 'SvUNLOCK'},'mg_set' => {'text' => 'Do magic after a value is assigned to the SV. See C.
810              
811             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).
812             The new SV is marked as mortal. It will be destroyed "soon", either by an
813             explicit call to FREETMPS, or by an implicit call at places such as
814             statement boundaries. See also C and C.
815              
816             SV* sv_mortalcopy(SV* oldsv)','name' => 'sv_mortalcopy'},'sv_catpvn_nomg' => {'text' => 'Like C but doesn\'t process magic.
817              
818             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
819             pair.
820              
821             SV* newSVpvs_flags(const char* s, U32 flags)','name' => 'newSVpvs_flags'},'G_NOARGS' => {'text' => 'Indicates that no arguments are being sent to a callback. See
822             L.','name' => 'G_NOARGS'},'savepvn' => {'text' => 'Perl\'s version of what C would be if it existed. Returns a
823             pointer to a newly allocated string which is a duplicate of the first
824             C bytes from C, plus a trailing NUL byte. The memory allocated for
825             the new string can be freed with the C function.
826              
827             char* savepvn(const char* pv, I32 len)','name' => 'savepvn'},'av_exists' => {'text' => 'Returns true if the element indexed by C has been initialized.
828              
829             This relies on the fact that uninitialized array elements are set to
830             C<&PL_sv_undef>.
831              
832             bool av_exists(AV* ar, I32 key)','name' => 'av_exists'},'SvCUR' => {'text' => 'Returns the length of the string which is in the SV. See C.
833              
834             STRLEN SvCUR(SV* sv)','name' => 'SvCUR'},'sv_bless' => {'text' => 'Blesses an SV into a specified package. The SV must be an RV. The package
835             must be designated by its stash (see C). The reference count
836             of the SV is unaffected.
837              
838             SV* sv_bless(SV* sv, HV* stash)','name' => 'sv_bless'},'sv_isa' => {'text' => 'Returns a boolean indicating whether the SV is blessed into the specified
839             class. This does not check for subtypes; use C to verify
840             an inheritance relationship.
841              
842             int sv_isa(SV* sv, const char* name)','name' => 'sv_isa'},'sv_catpvf' => {'text' => 'Processes its arguments like C and appends the formatted
843             output to an SV. If the appended data contains "wide" characters
844             (including, but not limited to, SVs with a UTF-8 PV formatted with %s,
845             and characters >255 formatted with %c), the original SV might get
846             upgraded to UTF-8. Handles \'get\' magic, but not \'set\' magic. See
847             C. If the original SV was UTF-8, the pattern should be
848             valid UTF-8; if the original SV was bytes, the pattern should be too.
849              
850             void sv_catpvf(SV* sv, const char* pat, ...)','name' => 'sv_catpvf'},'XSRETURN_PV' => {'text' => 'Return a copy of a string from an XSUB immediately. Uses C.
851              
852             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
853             which is assumed to be in UTF-8 encoding; C will be set to the
854             length, in bytes, of that character.
855              
856             This function should only be used when returned UV is considered
857             an index into the Unicode semantic tables (e.g. swashes).
858              
859             If C does not point to a well-formed UTF-8 character, zero is
860             returned and retlen is set, if possible, to -1.
861              
862             UV utf8_to_uvuni(U8 *s, STRLEN *retlen)','name' => 'utf8_to_uvuni'},'sv_2io' => {'text' => 'Using various gambits, try to get an IO from an SV: the IO slot if its a
863             GV; or the recursive result if we\'re an RV; or the IO slot of the symbol
864             named after the PV if we\'re a string.
865              
866             IO* sv_2io(SV* sv)','name' => 'sv_2io'},'SvMAGIC_set' => {'text' => 'Set the value of the MAGIC pointer in sv to val. See C.
867              
868             void SvMAGIC_set(SV* sv, MAGIC* val)','name' => 'SvMAGIC_set'},'newSVhek' => {'text' => 'Creates a new SV from the hash key structure. It will generate scalars that
869             point to the shared string table where possible. Returns a new (undefined)
870             SV if the hek is NULL.
871              
872             SV* newSVhek(const HEK *hek)','name' => 'newSVhek'},'isALPHA' => {'text' => 'Returns a boolean indicating whether the C C is an ASCII alphabetic
873             character.
874              
875             bool isALPHA(char ch)','name' => 'isALPHA'},'Nullhv' => {'text' => 'Null HV pointer.','name' => 'Nullhv'},'av_fill' => {'text' => 'Set the highest index in the array to the given number, equivalent to
876             Perl\'s C<$#array = $fill;>.
877              
878             The number of elements in the an array will be C after
879             av_fill() returns. If the array was previously shorter then the
880             additional elements appended are set to C. If the array
881             was longer, then the excess elements are freed. C is
882             the same as C.
883              
884             void av_fill(AV* ar, I32 fill)','name' => 'av_fill'},'SvREFCNT_inc' => {'text' => 'Increments the reference count of the given SV.
885              
886             All of the following SvREFCNT_inc* macros are optimized versions of
887             SvREFCNT_inc, and can be replaced with SvREFCNT_inc.
888              
889             SV* SvREFCNT_inc(SV* sv)','name' => 'SvREFCNT_inc'},'SvTYPE' => {'text' => 'Returns the type of the SV. See C.
890              
891             svtype SvTYPE(SV* sv)','name' => 'SvTYPE'},'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'},'SvROK_off' => {'text' => 'Unsets the RV status of an SV.
897              
898             void SvROK_off(SV* sv)','name' => 'SvROK_off'},'Renew' => {'text' => 'The XSUB-writer\'s interface to the C C function.
899              
900             void Renew(void* ptr, int nitems, type)','name' => 'Renew'},'grok_bin' => {'text' => 'converts a string representing a binary number to numeric form.
901              
902             On entry I and I<*len> give the string to scan, I<*flags> gives
903             conversion flags, and I should be NULL or a pointer to an NV.
904             The scan stops at the end of the string, or the first invalid character.
905             Unless C is set in I<*flags>, encountering an
906             invalid character will also trigger a warning.
907             On return I<*len> is set to the length of the scanned string,
908             and I<*flags> gives output flags.
909              
910             If the value is <= C it is returned as a UV, the output flags are clear,
911             and nothing is written to I<*result>. If the value is > UV_MAX C
912             returns UV_MAX, sets C in the output flags,
913             and writes the value to I<*result> (or the value is discarded if I
914             is NULL).
915              
916             The binary number may optionally be prefixed with "0b" or "b" unless
917             C is set in I<*flags> on entry. If
918             C is set in I<*flags> then the binary
919             number may use \'_\' characters to separate digits.
920              
921             UV grok_bin(char* start, STRLEN* len, I32* flags, NV *result)','name' => 'grok_bin'},'perl_free' => {'text' => 'Releases a Perl interpreter. See L.
922              
923             void perl_free(PerlInterpreter* interp)','name' => 'perl_free'},'mg_find' => {'text' => 'Finds the magic pointer for type matching the SV. See C.
924              
925             MAGIC* mg_find(SV* sv, int type)','name' => 'mg_find'},'SvNOK_on' => {'text' => 'Tells an SV that it is a double.
926              
927             void SvNOK_on(SV* sv)','name' => 'SvNOK_on'},'XPUSHmortal' => {'text' => 'Push a new mortal SV onto the stack, extending the stack if necessary.
928             Does not use C. See also C, C and C.
929              
930             void XPUSHmortal()','name' => 'XPUSHmortal'},'newSVpvn_share' => {'text' => 'Creates a new SV with its SvPVX_const pointing to a shared string in the string
931             table. If the string does not already exist in the table, it is created
932             first. Turns on READONLY and FAKE. If the C parameter is non-zero, that
933             value is used; otherwise the hash is computed. The string\'s hash can be later
934             be retrieved from the SV with the C macro. The idea here is
935             that as the string table is used for shared hash keys these strings will have
936             SvPVX_const == HeKEY and hash lookup will avoid string compare.
937              
938             SV* newSVpvn_share(const char* s, I32 len, U32 hash)','name' => 'newSVpvn_share'},'sv_setpvf_mg' => {'text' => 'Like C, but also handles \'set\' magic.
939              
940             void sv_setpvf_mg(SV *sv, const char* pat, ...)','name' => 'sv_setpvf_mg'},'SvPOKp' => {'text' => 'Returns a U32 value indicating whether the SV contains a character string.
941             Checks the B setting. Use C.
942              
943             U32 SvPOKp(SV* sv)','name' => 'SvPOKp'},'sv_catpvn' => {'text' => 'Concatenates the string onto the end of the string which is in the SV. The
944             C indicates number of bytes to copy. If the SV has the UTF-8
945             status set, then the bytes appended should be valid UTF-8.
946             Handles \'get\' magic, but not \'set\' magic. See C.
947              
948             void sv_catpvn(SV* sv, const char* ptr, STRLEN len)','name' => 'sv_catpvn'},'sv_setref_pv' => {'text' => 'Copies a pointer into a new SV, optionally blessing the SV. The C
949             argument will be upgraded to an RV. That RV will be modified to point to
950             the new SV. If the C argument is NULL then C will be placed
951             into the SV. The C argument indicates the package for the
952             blessing. Set C to C to avoid the blessing. The new SV
953             will have a reference count of 1, and the RV will be returned.
954              
955             Do not use with other Perl types such as HV, AV, SV, CV, because those
956             objects will become corrupted by the pointer copy process.
957              
958             Note that C copies the string while this copies the pointer.
959              
960             SV* sv_setref_pv(SV* rv, const char* classname, void* pv)','name' => 'sv_setref_pv'},'fbm_compile' => {'text' => 'Analyses the string in order to make fast searches on it using fbm_instr()
961             -- the Boyer-Moore algorithm.
962              
963             void fbm_compile(SV* sv, U32 flags)','name' => 'fbm_compile'},'sv_utf8_downgrade' => {'text' => 'Attempts to convert the PV of an SV from characters to bytes.
964             If the PV contains a character beyond byte, this conversion will fail;
965             in this case, either returns false or, if C is not
966             true, croaks.
967              
968             This is not as a general purpose Unicode to byte encoding interface:
969             use the Encode extension for that.
970              
971             NOTE: this function is experimental and may change or be
972             removed without notice.
973              
974             bool sv_utf8_downgrade(SV *sv, bool fail_ok)','name' => 'sv_utf8_downgrade'},'SvNIOKp' => {'text' => 'Returns a U32 value indicating whether the SV contains a number, integer or
975             double. Checks the B setting. Use C.
976              
977             U32 SvNIOKp(SV* sv)','name' => 'SvNIOKp'},'utf8_hop' => {'text' => 'Return the UTF-8 pointer C displaced by C characters, either
978             forward or backward.
979              
980             WARNING: do not use the following unless you *know* C is within
981             the UTF-8 data pointed to by C *and* that on entry C is aligned
982             on the first byte of character or just after the last byte of a character.
983              
984             U8* utf8_hop(U8 *s, I32 off)','name' => 'utf8_hop'},'sv_len_utf8' => {'text' => 'Returns the number of characters in the string in an SV, counting wide
985             UTF-8 bytes as a single character. Handles magic and type coercion.
986              
987             STRLEN sv_len_utf8(SV* sv)','name' => 'sv_len_utf8'},'sv_setref_pvn' => {'text' => 'Copies a string into a new SV, optionally blessing the SV. The length of the
988             string must be specified with C. The C argument will be upgraded to
989             an RV. That RV will be modified to point to the new SV. The C
990             argument indicates the package for the blessing. Set C to
991             C to avoid the blessing. The new SV will have a reference count
992             of 1, and the RV will be returned.
993              
994             Note that C copies the pointer while this copies the string.
995              
996             SV* sv_setref_pvn(SV* rv, const char* classname, char* pv, STRLEN n)','name' => 'sv_setref_pvn'},'SVt_PVMG' => {'text' => 'Type flag for blessed scalars. See C.','name' => 'SVt_PVMG'},'PUSHp' => {'text' => 'Push a string onto the stack. The stack must have room for this element.
997             The C indicates the length of the string. Handles \'set\' magic. Uses
998             C, so C or C should be called to declare it. Do not
999             call multiple C-oriented macros to return lists from XSUB\'s - see
1000             C instead. See also C and C.
1001              
1002             void PUSHp(char* str, STRLEN len)','name' => 'PUSHp'},'SvREFCNT_inc_simple_void' => {'text' => 'Same as SvREFCNT_inc_simple, but can only be used if you don\'t need the
1003             return value. The macro doesn\'t need to return a meaningful value.
1004              
1005             void SvREFCNT_inc_simple_void(SV* sv)','name' => 'SvREFCNT_inc_simple_void'},'hv_clear_placeholders' => {'text' => 'Clears any placeholders from a hash. If a restricted hash has any of its keys
1006             marked as readonly and the key is subsequently deleted, the key is not actually
1007             deleted but is marked by assigning it a value of &PL_sv_placeholder. This tags
1008             it so it will be ignored by future operations such as iterating over the hash,
1009             but will still allow the hash to have a value reassigned to the key at some
1010             future point. This function clears any such placeholder keys from the hash.
1011             See Hash::Util::lock_keys() for an example of its use.
1012              
1013             void hv_clear_placeholders(HV* hb)','name' => 'hv_clear_placeholders'},'mXPUSHi' => {'text' => 'Push an integer onto the stack, extending the stack if necessary.
1014             Does not use C. See also C, C and C.
1015              
1016             void mXPUSHi(IV iv)','name' => 'mXPUSHi'},'dAX' => {'text' => 'Sets up the C variable.
1017             This is usually handled automatically by C by calling C.
1018              
1019             dAX;','name' => 'dAX'},'PL_sv_undef' => {'text' => 'This is the C SV. Always refer to this as C<&PL_sv_undef>.
1020              
1021             SV PL_sv_undef','name' => 'PL_sv_undef'},'SvRV_set' => {'text' => 'Set the value of the RV pointer in sv to val. See C.
1022              
1023             void SvRV_set(SV* sv, SV* val)','name' => 'SvRV_set'},'hv_iterkeysv' => {'text' => 'Returns the key as an C from the current position of the hash
1024             iterator. The return value will always be a mortal copy of the key. Also
1025             see C.
1026              
1027             SV* hv_iterkeysv(HE* entry)','name' => 'hv_iterkeysv'},'grok_number' => {'text' => 'Recognise (or not) a number. The type of the number is returned
1028             (0 if unrecognised), otherwise it is a bit-ORed combination of
1029             IS_NUMBER_IN_UV, IS_NUMBER_GREATER_THAN_UV_MAX, IS_NUMBER_NOT_INT,
1030             IS_NUMBER_NEG, IS_NUMBER_INFINITY, IS_NUMBER_NAN (defined in perl.h).
1031              
1032             If the value of the number can fit an in UV, it is returned in the *valuep
1033             IS_NUMBER_IN_UV will be set to indicate that *valuep is valid, IS_NUMBER_IN_UV
1034             will never be set unless *valuep is valid, but *valuep may have been assigned
1035             to during processing even though IS_NUMBER_IN_UV is not set on return.
1036             If valuep is NULL, IS_NUMBER_IN_UV will be set for the same cases as when
1037             valuep is non-NULL, but no actual assignment (or SEGV) will occur.
1038              
1039             IS_NUMBER_NOT_INT will be set with IS_NUMBER_IN_UV if trailing decimals were
1040             seen (in which case *valuep gives the true value truncated to an integer), and
1041             IS_NUMBER_NEG if the number is negative (in which case *valuep holds the
1042             absolute value). IS_NUMBER_IN_UV is not set if e notation was used or the
1043             number is larger than a UV.
1044              
1045             int grok_number(const char *pv, STRLEN len, UV *valuep)','name' => 'grok_number'},'SvIVx' => {'text' => 'Coerces the given SV to an integer and returns it. Guarantees to evaluate
1046             C only once. Only use this if C is an expression with side effects,
1047             otherwise use the more efficient C.
1048              
1049             IV SvIVx(SV* sv)','name' => 'SvIVx'},'grok_numeric_radix' => {'text' => 'Scan and skip for a numeric decimal separator (radix).
1050              
1051             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
1052             stack.
1053              
1054             void XST_mNO(int pos)','name' => 'XST_mNO'},'mPUSHp' => {'text' => 'Push a string onto the stack. The stack must have room for this element.
1055             The C indicates the length of the string. Does not use C.
1056             See also C, C and C.
1057              
1058             void mPUSHp(char* str, STRLEN len)','name' => 'mPUSHp'},'av_delete' => {'text' => 'Deletes the element indexed by C from the array. Returns the
1059             deleted element. If C equals C, the element is freed
1060             and null is returned.
1061              
1062             SV* av_delete(AV* ar, I32 key, I32 flags)','name' => 'av_delete'},'utf8_distance' => {'text' => 'Returns the number of UTF-8 characters between the UTF-8 pointers C
1063             and C.
1064              
1065             WARNING: use only if you *know* that the pointers point inside the
1066             same UTF-8 buffer.
1067              
1068             IV utf8_distance(U8 *a, U8 *b)','name' => 'utf8_distance'},'SvPV_nomg' => {'text' => 'Like C but doesn\'t process magic.
1069              
1070             char* SvPV_nomg(SV* sv, STRLEN len)','name' => 'SvPV_nomg'},'savepvs' => {'text' => 'Like C, but takes a literal string instead of a string/length pair.
1071              
1072             char* savepvs(const char* s)','name' => 'savepvs'},'SvSTASH_set' => {'text' => 'Set the value of the STASH pointer in sv to val. See C.
1073              
1074             void SvSTASH_set(SV* sv, HV* val)','name' => 'SvSTASH_set'},'sv_collxfrm' => {'text' => 'Add Collate Transform magic to an SV if it doesn\'t already have it.
1075              
1076             Any scalar variable may carry PERL_MAGIC_collxfrm magic that contains the
1077             scalar data of the variable, but transformed to such a format that a normal
1078             memory comparison can be used to compare the data according to the locale
1079             settings.
1080              
1081             char* sv_collxfrm(SV* sv, STRLEN* nxp)','name' => 'sv_collxfrm'},'ZeroD' => {'text' => 'Like C but returns dest. Useful for encouraging compilers to tail-call
1082             optimise.
1083              
1084             void * ZeroD(void* dest, int nitems, type)','name' => 'ZeroD'},'SvUV_nomg' => {'text' => 'Like C but doesn\'t process magic.
1085              
1086             UV SvUV_nomg(SV* sv)','name' => 'SvUV_nomg'},'SP' => {'text' => 'Stack pointer. This is usually handled by C. See C and
1087             C.','name' => 'SP'},'sv_catpvn_mg' => {'text' => 'Like C, but also handles \'set\' magic.
1088              
1089             void sv_catpvn_mg(SV *sv, const char *ptr, STRLEN len)','name' => 'sv_catpvn_mg'},'POPpx' => {'text' => 'Pops a string off the stack.
1090              
1091             char* POPpx','name' => 'POPpx'},'SvSTASH' => {'text' => 'Returns the stash of the SV.
1092              
1093             HV* SvSTASH(SV* sv)','name' => 'SvSTASH'},'gv_stashpvs' => {'text' => 'Like C, but takes a literal string instead of a string/length pair.
1094              
1095             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
1096             destination, C is the number of items, and C is the type.
1097              
1098             void Zero(void* dest, int nitems, type)','name' => 'Zero'},'PL_modglobal' => {'text' => 'C is a general purpose, interpreter global HV for use by
1099             extensions that need to keep information on a per-interpreter basis.
1100             In a pinch, it can also be used as a symbol table for extensions
1101             to share data among each other. It is a good idea to use keys
1102             prefixed by the package name of the extension that owns the data.
1103              
1104             HV* PL_modglobal','name' => 'PL_modglobal'},'sv_setpvs' => {'text' => 'Like C, but takes a literal string instead of a string/length pair.
1105              
1106             void sv_setpvs(SV* sv, const char* s)','name' => 'sv_setpvs'},'XSRETURN_UNDEF' => {'text' => 'Return C<&PL_sv_undef> from an XSUB immediately. Uses C.
1107              
1108             XSRETURN_UNDEF;','name' => 'XSRETURN_UNDEF'},'sv_iv' => {'text' => 'A private implementation of the C macro for compilers which can\'t
1109             cope with complex macro expressions. Always use the macro instead.
1110              
1111             IV sv_iv(SV* sv)','name' => 'sv_iv'},'pv_escape' => {'text' => 'Escapes at most the first "count" chars of pv and puts the results into
1112             dsv such that the size of the escaped string will not exceed "max" chars
1113             and will not contain any incomplete escape sequences.
1114              
1115             If flags contains PERL_PV_ESCAPE_QUOTE then any double quotes in the string
1116             will also be escaped.
1117              
1118             Normally the SV will be cleared before the escaped string is prepared,
1119             but when PERL_PV_ESCAPE_NOCLEAR is set this will not occur.
1120              
1121             If PERL_PV_ESCAPE_UNI is set then the input string is treated as Unicode,
1122             if PERL_PV_ESCAPE_UNI_DETECT is set then the input string is scanned
1123             using C to determine if it is Unicode.
1124              
1125             If PERL_PV_ESCAPE_ALL is set then all input chars will be output
1126             using C<\\x01F1> style escapes, otherwise only chars above 255 will be
1127             escaped using this style, other non printable chars will use octal or
1128             common escaped patterns like C<\\n>. If PERL_PV_ESCAPE_NOBACKSLASH
1129             then all chars below 255 will be treated as printable and
1130             will be output as literals.
1131              
1132             If PERL_PV_ESCAPE_FIRSTCHAR is set then only the first char of the
1133             string will be escaped, regardles of max. If the string is utf8 and
1134             the chars value is >255 then it will be returned as a plain hex
1135             sequence. Thus the output will either be a single char,
1136             an octal escape sequence, a special escape like C<\\n> or a 3 or
1137             more digit hex value.
1138              
1139             Returns a pointer to the escaped text as held by dsv.
1140              
1141             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
1142             C if the hash entry contains only a C key.
1143              
1144             SV* HeSVKEY_force(HE* he)','name' => 'HeSVKEY_force'},'newRV_inc' => {'text' => 'Creates an RV wrapper for an SV. The reference count for the original SV is
1145             incremented.
1146              
1147             SV* newRV_inc(SV* sv)','name' => 'newRV_inc'},'SVt_PVCV' => {'text' => 'Type flag for code refs. See C.','name' => 'SVt_PVCV'},'sv_setpviv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
1148              
1149             void sv_setpviv_mg(SV *sv, IV iv)','name' => 'sv_setpviv_mg'},'SvUVx' => {'text' => 'Coerces the given SV to an unsigned integer and returns it. Guarantees to
1150             C only once. Only use this if C is an expression with side effects,
1151             otherwise use the more efficient C.
1152              
1153             UV SvUVx(SV* sv)','name' => 'SvUVx'},'SvROK_on' => {'text' => 'Tells an SV that it is an RV.
1154              
1155             void SvROK_on(SV* sv)','name' => 'SvROK_on'},'sv_2bool' => {'text' => 'This function is only called on magical items, and is only used by
1156             sv_true() or its macro equivalent.
1157              
1158             bool sv_2bool(SV* sv)','name' => 'sv_2bool'},'G_VOID' => {'text' => 'Used to indicate void context. See C and L.','name' => 'G_VOID'},'dORIGMARK' => {'text' => 'Saves the original stack mark for the XSUB. See C.
1159              
1160             dORIGMARK;','name' => 'dORIGMARK'},'sv_newmortal' => {'text' => 'Creates a new null SV which is mortal. The reference count of the SV is
1161             set to 1. It will be destroyed "soon", either by an explicit call to
1162             FREETMPS, or by an implicit call at places such as statement boundaries.
1163             See also C and C.
1164              
1165             SV* sv_newmortal()','name' => 'sv_newmortal'},'sv_clear' => {'text' => 'Clear an SV: call any destructors, free up any memory used by the body,
1166             and free the body itself. The SV\'s head is I freed, although
1167             its type is set to all 1\'s so that it won\'t inadvertently be assumed
1168             to be live during global destruction etc.
1169             This function should only be called when REFCNT is zero. Most of the time
1170             you\'ll want to call C (or its macro wrapper C)
1171             instead.
1172              
1173             void sv_clear(SV* sv)','name' => 'sv_clear'},'SvOOK' => {'text' => 'Returns a U32 indicating whether the SvIVX is a valid offset value for
1174             the SvPVX. This hack is used internally to speed up removal of characters
1175             from the beginning of a SvPV. When SvOOK is true, then the start of the
1176             allocated string buffer is really (SvPVX - SvIVX).
1177              
1178             U32 SvOOK(SV* sv)','name' => 'SvOOK'},'SvPV_set' => {'text' => 'Set the value of the PV pointer in sv to val. See C.
1179              
1180             void SvPV_set(SV* sv, char* val)','name' => 'SvPV_set'},'XSRETURN_NV' => {'text' => 'Return a double from an XSUB immediately. Uses C.
1181              
1182             void XSRETURN_NV(NV nv)','name' => 'XSRETURN_NV'},'svtype' => {'text' => 'An enum of flags for Perl types. These are found in the file B
1183             in the C enum. Test these flags with the C macro.','name' => 'svtype'},'load_module' => {'text' => 'Loads the module whose name is pointed to by the string part of name.
1184             Note that the actual module name, not its filename, should be given.
1185             Eg, "Foo::Bar" instead of "Foo/Bar.pm". flags can be any of
1186             PERL_LOADMOD_DENY, PERL_LOADMOD_NOIMPORT, or PERL_LOADMOD_IMPORT_OPS
1187             (or 0 for no flags). ver, if specified, provides version semantics
1188             similar to C. The optional trailing SV*
1189             arguments can be used to specify arguments to the module\'s import()
1190             method, similar to C.
1191              
1192             void load_module(U32 flags, SV* name, SV* ver, ...)','name' => 'load_module'},'get_hv' => {'text' => 'Returns the HV of the specified Perl hash. If C is set and the
1193             Perl variable does not exist then it will be created. If C is not
1194             set and the variable does not exist then NULL is returned.
1195              
1196             NOTE: the perl_ form of this function is deprecated.
1197              
1198             HV* get_hv(const char* name, I32 create)','name' => 'get_hv'},'hv_clear' => {'text' => 'Clears a hash, making it empty.
1199              
1200             void hv_clear(HV* tb)','name' => 'hv_clear'},'PoisonNew' => {'text' => 'PoisonWith(0xAB) for catching access to allocated but uninitialized memory.
1201              
1202             void PoisonNew(void* dest, int nitems, type)','name' => 'PoisonNew'},'XSRETURN_YES' => {'text' => 'Return C<&PL_sv_yes> from an XSUB immediately. Uses C.
1203              
1204             XSRETURN_YES;','name' => 'XSRETURN_YES'},'sv_nv' => {'text' => 'A private implementation of the C macro for compilers which can\'t
1205             cope with complex macro expressions. Always use the macro instead.
1206              
1207             NV sv_nv(SV* sv)','name' => 'sv_nv'},'Poison' => {'text' => 'PoisonWith(0xEF) for catching access to freed memory.
1208              
1209             void Poison(void* dest, int nitems, type)','name' => 'Poison'},'Renewc' => {'text' => 'The XSUB-writer\'s interface to the C C function, with
1210             cast.
1211              
1212             void Renewc(void* ptr, int nitems, type, cast)','name' => 'Renewc'},'sv_catpvf_mg' => {'text' => 'Like C, but also handles \'set\' magic.
1213              
1214             void sv_catpvf_mg(SV *sv, const char* pat, ...)','name' => 'sv_catpvf_mg'},'PUSHu' => {'text' => 'Push an unsigned integer onto the stack. The stack must have room for this
1215             element. Handles \'set\' magic. Uses C, so C or C
1216             should be called to declare it. Do not call multiple C-oriented
1217             macros to return lists from XSUB\'s - see C instead. See also
1218             C and C.
1219              
1220             void PUSHu(UV uv)','name' => 'PUSHu'},'get_sv' => {'text' => 'Returns the SV of the specified Perl scalar. If C is set and the
1221             Perl variable does not exist then it will be created. If C is not
1222             set and the variable does not exist then NULL is returned.
1223              
1224             NOTE: the perl_ form of this function is deprecated.
1225              
1226             SV* get_sv(const char* name, I32 create)','name' => 'get_sv'},'SvPOK_off' => {'text' => 'Unsets the PV status of an SV.
1227              
1228             void SvPOK_off(SV* sv)','name' => 'SvPOK_off'},'newSVsv' => {'text' => 'Creates a new SV which is an exact duplicate of the original SV.
1229             (Uses C).
1230              
1231             SV* newSVsv(SV* old)','name' => 'newSVsv'},'hv_magic' => {'text' => 'Adds magic to a hash. See C.
1232              
1233             void hv_magic(HV* hv, GV* gv, int how)','name' => 'hv_magic'},'sv_setpv_mg' => {'text' => 'Like C, but also handles \'set\' magic.
1234              
1235             void sv_setpv_mg(SV *sv, const char *ptr)','name' => 'sv_setpv_mg'},'sv_2mortal' => {'text' => 'Marks an existing SV as mortal. The SV will be destroyed "soon", either
1236             by an explicit call to FREETMPS, or by an implicit call at places such as
1237             statement boundaries. SvTEMP() is turned on which means that the SV\'s
1238             string buffer can be "stolen" if this SV is copied. See also C
1239             and C.
1240              
1241             SV* sv_2mortal(SV* sv)','name' => 'sv_2mortal'},'XCPT_TRY_END' => {'text' => 'Ends a try block. See L.','name' => 'XCPT_TRY_END'},'av_undef' => {'text' => 'Undefines the array. Frees the memory used by the array itself.
1242              
1243             void av_undef(AV* ar)','name' => 'av_undef'},'HeKEY' => {'text' => 'Returns the actual pointer stored in the key slot of the hash entry. The
1244             pointer may be either C or C, depending on the value of
1245             C. Can be assigned to. The C or C macros are
1246             usually preferable for finding the value of a key.
1247              
1248             void* HeKEY(HE* he)','name' => 'HeKEY'},'pack_cat' => {'text' => 'The engine implementing pack() Perl function. Note: parameters next_in_list and
1249             flags are not used. This call should not be used; use packlist instead.
1250              
1251             void pack_cat(SV *cat, char *pat, char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags)','name' => 'pack_cat'},'sv_cmp' => {'text' => 'Compares the strings in two SVs. Returns -1, 0, or 1 indicating whether the
1252             string in C is less than, equal to, or greater than the string in
1253             C. Is UTF-8 and \'use bytes\' aware, handles get magic, and will
1254             coerce its args to strings if necessary. See also C.
1255              
1256             I32 sv_cmp(SV* sv1, SV* sv2)','name' => 'sv_cmp'},'SvEND' => {'text' => 'Returns a pointer to the last character in the string which is in the SV.
1257             See C. Access the character as *(SvEND(sv)).
1258              
1259             char* SvEND(SV* sv)','name' => 'SvEND'},'mg_free' => {'text' => 'Free any magic storage used by the SV. See C.
1260              
1261             int mg_free(SV* sv)','name' => 'mg_free'},'GIMME_V' => {'text' => 'The XSUB-writer\'s equivalent to Perl\'s C. Returns C,
1262             C or C for void, scalar or list context,
1263             respectively.
1264              
1265             U32 GIMME_V','name' => 'GIMME_V'},'sv_force_normal_flags' => {'text' => 'Undo various types of fakery on an SV: if the PV is a shared string, make
1266             a private copy; if we\'re a ref, stop refing; if we\'re a glob, downgrade to
1267             an xpvmg. The C parameter gets passed to C
1268             when unrefing. C calls this function with flags set to 0.
1269              
1270             void sv_force_normal_flags(SV *sv, U32 flags)','name' => 'sv_force_normal_flags'},'sv_setsv_flags' => {'text' => 'Copies the contents of the source SV C into the destination SV
1271             C. The source SV may be destroyed if it is mortal, so don\'t use this
1272             function if the source SV needs to be reused. Does not handle \'set\' magic.
1273             Loosely speaking, it performs a copy-by-value, obliterating any previous
1274             content of the destination.
1275             If the C parameter has the C bit set, will C on
1276             C if appropriate, else not. If the C parameter has the
1277             C bit set then the buffers of temps will not be stolen.
1278             and C are implemented in terms of this function.
1279              
1280             You probably want to use one of the assortment of wrappers, such as
1281             C, C, C and
1282             C.
1283              
1284             This is the primary function for copying scalars, and most other
1285             copy-ish functions and macros use this underneath.
1286              
1287             void sv_setsv_flags(SV* dsv, SV* ssv, I32 flags)','name' => 'sv_setsv_flags'},'is_utf8_char' => {'text' => 'Tests if some arbitrary number of bytes begins in a valid UTF-8
1288             character. Note that an INVARIANT (i.e. ASCII) character is a valid
1289             UTF-8 character. The actual number of bytes in the UTF-8 character
1290             will be returned if it is valid, otherwise 0.
1291              
1292             STRLEN is_utf8_char(U8 *p)','name' => 'is_utf8_char'},'Copy' => {'text' => 'The XSUB-writer\'s interface to the C C function. The C is the
1293             source, C is the destination, C is the number of items, and C is
1294             the type. May fail on overlapping copies. See also C.
1295              
1296             void Copy(void* src, void* dest, int nitems, type)','name' => 'Copy'},'sv_taint' => {'text' => 'Taint an SV. Use C instead.
1297             void sv_taint(SV* sv)','name' => 'sv_taint'},'SvNOK_off' => {'text' => 'Unsets the NV status of an SV.
1298              
1299             void SvNOK_off(SV* sv)','name' => 'SvNOK_off'},'sv_utf8_upgrade' => {'text' => 'Converts the PV of an SV to its UTF-8-encoded form.
1300             Forces the SV to string form if it is not already.
1301             Always sets the SvUTF8 flag to avoid future validity checks even
1302             if all the bytes have hibit clear.
1303              
1304             This is not as a general purpose byte encoding to Unicode interface:
1305             use the Encode extension for that.
1306              
1307             STRLEN sv_utf8_upgrade(SV *sv)','name' => 'sv_utf8_upgrade'},'SvIOK_notUV' => {'text' => 'Returns a boolean indicating whether the SV contains a signed integer.
1308              
1309             bool SvIOK_notUV(SV* sv)','name' => 'SvIOK_notUV'},'dXSARGS' => {'text' => 'Sets up stack and mark pointers for an XSUB, calling dSP and dMARK.
1310             Sets up the C and C variables by calling C and C.
1311             This is usually handled automatically by C.
1312              
1313             dXSARGS;','name' => 'dXSARGS'},'savesharedpv' => {'text' => 'A version of C which allocates the duplicate string in memory
1314             which is shared between threads.
1315              
1316             char* savesharedpv(const char* pv)','name' => 'savesharedpv'},'isSPACE' => {'text' => 'Returns a boolean indicating whether the C C is whitespace.
1317              
1318             bool isSPACE(char ch)','name' => 'isSPACE'},'Safefree' => {'text' => 'The XSUB-writer\'s interface to the C C function.
1319              
1320             void Safefree(void* ptr)','name' => 'Safefree'},'gv_stashpvn' => {'text' => 'Returns a pointer to the stash for a specified package. The C
1321             parameter indicates the length of the C, in bytes. C is passed
1322             to C, so if set to C then the package will be
1323             created if it does not already exist. If the package does not exist and
1324             C is 0 (or any other setting that does not create packages) then NULL
1325             is returned.
1326              
1327              
1328             HV* gv_stashpvn(const char* name, U32 namelen, I32 flags)','name' => 'gv_stashpvn'},'mPUSHu' => {'text' => 'Push an unsigned integer onto the stack. The stack must have room for this
1329             element. Does not use C. See also C, C and C.
1330              
1331             void mPUSHu(UV uv)','name' => 'mPUSHu'},'newSV_type' => {'text' => 'Creates a new SV, of the type specified. The reference count for the new SV
1332             is set to 1.
1333              
1334             SV* newSV_type(svtype type)','name' => 'newSV_type'},'sv_setsv_nomg' => {'text' => 'Like C but doesn\'t process magic.
1335              
1336             void sv_setsv_nomg(SV* dsv, SV* ssv)','name' => 'sv_setsv_nomg'},'SvREFCNT_inc_void_NN' => {'text' => 'Same as SvREFCNT_inc, but can only be used if you don\'t need the return
1337             value, and you know that I is not NULL. The macro doesn\'t need
1338             to return a meaningful value, or check for NULLness, so it\'s smaller
1339             and faster.
1340              
1341             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
1342             it is not.
1343              
1344             If Configure detects this system has a signbit() that will work with
1345             our NVs, then we just use it via the #define in perl.h. Otherwise,
1346             fall back on this implementation. As a first pass, this gets everything
1347             right except -0.0. Alas, catching -0.0 is the main use for this function,
1348             so this is not too helpful yet. Still, at least we have the scaffolding
1349             in place to support other systems, should that prove useful.
1350              
1351              
1352             Configure notes: This function is called \'Perl_signbit\' instead of a
1353             plain \'signbit\' because it is easy to imagine a system having a signbit()
1354             function or macro that doesn\'t happen to work with our particular choice
1355             of NVs. We shouldn\'t just re-#define signbit as Perl_signbit and expect
1356             the standard system headers to be happy. Also, this is a no-context
1357             function (no pTHX_) because Perl_signbit() is usually re-#defined in
1358             perl.h as a simple macro call to the system\'s signbit().
1359             Users should just always call Perl_signbit().
1360              
1361             NOTE: this function is experimental and may change or be
1362             removed without notice.
1363              
1364             int Perl_signbit(NV f)','name' => 'Perl_signbit'},'av_create_and_push' => {'text' => 'Push an SV onto the end of the array, creating the array if necessary.
1365             A small internal helper function to remove a commonly duplicated idiom.
1366              
1367             NOTE: this function is experimental and may change or be
1368             removed without notice.
1369              
1370             void av_create_and_push(AV **const avp, SV *const val)','name' => 'av_create_and_push'},'PUSH_MULTICALL' => {'text' => 'Opening bracket for a lightweight callback.
1371             See L.
1372              
1373             PUSH_MULTICALL;','name' => 'PUSH_MULTICALL'},'XPUSHp' => {'text' => 'Push a string onto the stack, extending the stack if necessary. The C
1374             indicates the length of the string. Handles \'set\' magic. Uses C, so
1375             C or C should be called to declare it. Do not call
1376             multiple C-oriented macros to return lists from XSUB\'s - see
1377             C instead. See also C and C.
1378              
1379             void XPUSHp(char* str, STRLEN len)','name' => 'XPUSHp'},'sv_utf8_encode' => {'text' => 'Converts the PV of an SV to UTF-8, but then turns the C
1380             flag off so that it looks like octets again.
1381              
1382             void sv_utf8_encode(SV *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).
1383             Do not use frivolously.
1384              
1385             void SvUTF8_on(SV *sv)','name' => 'SvUTF8_on'},'sv_setpvn_mg' => {'text' => 'Like C, but also handles \'set\' magic.
1386              
1387             void sv_setpvn_mg(SV *sv, const char *ptr, STRLEN len)','name' => 'sv_setpvn_mg'},'toLOWER' => {'text' => 'Converts the specified character to lowercase.
1388              
1389             char toLOWER(char ch)','name' => 'toLOWER'},'POPp' => {'text' => 'Pops a string off the stack. Deprecated. New code should use POPpx.
1390              
1391             char* POPp','name' => 'POPp'},'SvIV_nomg' => {'text' => 'Like C but doesn\'t process magic.
1392              
1393             IV SvIV_nomg(SV* sv)','name' => 'SvIV_nomg'},'RETVAL' => {'text' => 'Variable which is setup by C to hold the return value for an
1394             XSUB. This is always the proper type for the XSUB. See
1395             L.
1396              
1397             (whatever) RETVAL','name' => 'RETVAL'},'HeSVKEY' => {'text' => 'Returns the key as an C, or C if the hash entry does not
1398             contain an C key.
1399              
1400             SV* HeSVKEY(HE* he)','name' => 'HeSVKEY'},'sv_pvbyten' => {'text' => 'A private implementation of the C macro for compilers
1401             which can\'t cope with complex macro expressions. Always use the macro
1402             instead.
1403              
1404             char* sv_pvbyten(SV *sv, STRLEN *len)','name' => 'sv_pvbyten'},'Nullav' => {'text' => 'Null AV pointer.','name' => 'Nullav'},'sv_copypv' => {'text' => 'Copies a stringified representation of the source SV into the
1405             destination SV. Automatically performs any necessary mg_get and
1406             coercion of numeric values into strings. Guaranteed to preserve
1407             UTF8 flag even from overloaded objects. Similar in nature to
1408             sv_2pv[_flags] but operates directly on an SV instead of just the
1409             string. Mostly uses sv_2pv_flags to do its work, except when that
1410             would lose the UTF-8\'ness of the PV.
1411              
1412             void sv_copypv(SV* dsv, SV* ssv)','name' => 'sv_copypv'},'sv_pv' => {'text' => 'Use the C macro instead
1413              
1414             char* sv_pv(SV *sv)','name' => 'sv_pv'},'pv_pretty' => {'text' => 'Converts a string into something presentable, handling escaping via
1415             pv_escape() and supporting quoting and elipses.
1416              
1417             If the PERL_PV_PRETTY_QUOTE flag is set then the result will be
1418             double quoted with any double quotes in the string escaped. Otherwise
1419             if the PERL_PV_PRETTY_LTGT flag is set then the result be wrapped in
1420             angle brackets.
1421            
1422             If the PERL_PV_PRETTY_ELIPSES flag is set and not all characters in
1423             string were output then an elipses C<...> will be appended to the
1424             string. Note that this happens AFTER it has been quoted.
1425            
1426             If start_color is non-null then it will be inserted after the opening
1427             quote (if there is one) but before the escaped text. If end_color
1428             is non-null then it will be inserted after the escaped text but before
1429             any quotes or elipses.
1430              
1431             Returns a pointer to the prettified text as held by dsv.
1432            
1433             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.
1434              
1435             void sv_setnv_mg(SV *sv, NV num)','name' => 'sv_setnv_mg'},'hv_iternextsv' => {'text' => 'Performs an C, C, and C in one
1436             operation.
1437              
1438             SV* hv_iternextsv(HV* hv, char** key, I32* retlen)','name' => 'hv_iternextsv'},'utf8_to_bytes' => {'text' => 'Converts a string C of length C from UTF-8 into byte encoding.
1439             Unlike C, this over-writes the original string, and
1440             updates len to contain the new length.
1441             Returns zero on failure, setting C to -1.
1442              
1443             If you need a copy of the string, see C.
1444              
1445             NOTE: this function is experimental and may change or be
1446             removed without notice.
1447              
1448             U8* utf8_to_bytes(U8 *s, STRLEN *len)','name' => 'utf8_to_bytes'},'sv_pvbyten_force' => {'text' => 'The backend for the C macro. Always use the macro instead.
1449              
1450             char* sv_pvbyten_force(SV* sv, STRLEN* lp)','name' => 'sv_pvbyten_force'},'uvuni_to_utf8_flags' => {'text' => 'Adds the UTF-8 representation of the Unicode codepoint C to the end
1451             of the string C; C should be have at least C free
1452             bytes available. The return value is the pointer to the byte after the
1453             end of the new character. In other words,
1454              
1455             d = uvuni_to_utf8_flags(d, uv, flags);
1456              
1457             or, in most cases,
1458              
1459             d = uvuni_to_utf8(d, uv);
1460              
1461             (which is equivalent to)
1462              
1463             d = uvuni_to_utf8_flags(d, uv, 0);
1464              
1465             is the recommended Unicode-aware way of saying
1466              
1467             *(d++) = uv;
1468              
1469             U8* uvuni_to_utf8_flags(U8 *d, UV uv, UV flags)','name' => 'uvuni_to_utf8_flags'},'XST_mIV' => {'text' => 'Place an integer into the specified position C on the stack. The
1470             value is stored in a new mortal SV.
1471              
1472             void XST_mIV(int pos, IV iv)','name' => 'XST_mIV'},'mPUSHs' => {'text' => 'Push an SV onto the stack and mortalizes the SV. The stack must have room
1473             for this element. Does not use C. See also C and C.
1474              
1475             void mPUSHs(SV* sv)','name' => 'mPUSHs'},'G_DISCARD' => {'text' => 'Indicates that arguments returned from a callback should be discarded. See
1476             L.','name' => 'G_DISCARD'},'GvSV' => {'text' => 'Return the SV from the GV.
1477              
1478             SV* GvSV(GV* gv)','name' => 'GvSV'},'XST_mNV' => {'text' => 'Place a double into the specified position C on the stack. The value
1479             is stored in a new mortal SV.
1480              
1481             void XST_mNV(int pos, NV nv)','name' => 'XST_mNV'},'UNDERBAR' => {'text' => 'The SV* corresponding to the $_ variable. Works even if there
1482             is a lexical $_ in scope. (Lexical $_ is available in perl 5.9.2 and later)','name' => 'UNDERBAR'},'pad_sv' => {'text' => 'Get the value at offset po in the current pad.
1483             Use macro PAD_SV instead of calling this function directly.
1484              
1485             SV* pad_sv(PADOFFSET po)','name' => 'pad_sv'},'POPi' => {'text' => 'Pops an integer off the stack.
1486              
1487             IV POPi','name' => 'POPi'},'SvPVutf8_force' => {'text' => 'Like C, but converts sv to utf8 first if necessary.
1488              
1489             char* SvPVutf8_force(SV* sv, STRLEN len)','name' => 'SvPVutf8_force'},'sv_2pvutf8_nolen' => {'text' => 'Return a pointer to the UTF-8-encoded representation of the SV.
1490             May cause the SV to be upgraded to UTF-8 as a side-effect.
1491              
1492             Usually accessed via the C macro.
1493              
1494             char* sv_2pvutf8_nolen(SV* sv)','name' => 'sv_2pvutf8_nolen'},'SVt_NV' => {'text' => 'Double type flag for scalars. See C.','name' => 'SVt_NV'},'av_store' => {'text' => 'Stores an SV in an array. The array index is specified as C. The
1495             return value will be NULL if the operation failed or if the value did not
1496             need to be actually stored within the array (as in the case of tied
1497             arrays). Otherwise it can be dereferenced to get the original C. Note
1498             that the caller is responsible for suitably incrementing the reference
1499             count of C before the call, and decrementing it if the function
1500             returned NULL.
1501              
1502             See L for
1503             more information on how to use this function on tied arrays.
1504              
1505             SV** av_store(AV* ar, I32 key, SV* val)','name' => 'av_store'},'SvPVbytex' => {'text' => 'Like C, but converts sv to byte representation first if necessary.
1506             Guarantees to evaluate sv only once; use the more efficient C
1507             otherwise.
1508              
1509             char* SvPVbytex(SV* sv, STRLEN len)','name' => 'SvPVbytex'},'PUSHMARK' => {'text' => 'Opening bracket for arguments on a callback. See C and
1510             L.
1511              
1512             void PUSHMARK(SP)','name' => 'PUSHMARK'},'ST' => {'text' => 'Used to access elements on the XSUB\'s stack.
1513              
1514             SV* ST(int ix)','name' => 'ST'},'call_pv' => {'text' => 'Performs a callback to the specified Perl sub. See L.
1515              
1516             NOTE: the perl_ form of this function is deprecated.
1517              
1518             I32 call_pv(const char* sub_name, I32 flags)','name' => 'call_pv'},'av_fetch' => {'text' => 'Returns the SV at the specified index in the array. The C is the
1519             index. If C is set then the fetch will be part of a store. Check
1520             that the return value is non-null before dereferencing it to a C.
1521              
1522             See L for
1523             more information on how to use this function on tied arrays.
1524              
1525             SV** av_fetch(AV* ar, I32 key, I32 lval)','name' => 'av_fetch'},'gv_fetchmeth_autoload' => {'text' => 'Same as gv_fetchmeth(), but looks for autoloaded subroutines too.
1526             Returns a glob for the subroutine.
1527              
1528             For an autoloaded subroutine without a GV, will create a GV even
1529             if C. For an autoloaded subroutine without a stub, GvCV()
1530             of the result may be zero.
1531              
1532             GV* gv_fetchmeth_autoload(HV* stash, const char* name, STRLEN len, I32 level)','name' => 'gv_fetchmeth_autoload'},'SvNOK_only' => {'text' => 'Tells an SV that it is a double and disables all other OK bits.
1533              
1534             void SvNOK_only(SV* sv)','name' => 'SvNOK_only'},'hv_iterval' => {'text' => 'Returns the value from the current position of the hash iterator. See
1535             C.
1536              
1537             SV* hv_iterval(HV* tb, HE* entry)','name' => 'hv_iterval'},'sv_reftype' => {'text' => 'Returns a string describing what the SV is a reference to.
1538              
1539             char* sv_reftype(SV* sv, int ob)','name' => 'sv_reftype'},'sv_pos_b2u' => {'text' => 'Converts the value pointed to by offsetp from a count of bytes from the
1540             start of the string, to a count of the equivalent number of UTF-8 chars.
1541             Handles magic and type coercion.
1542              
1543             void sv_pos_b2u(SV* sv, I32* offsetp)','name' => 'sv_pos_b2u'},'SvREFCNT_inc_simple_void_NN' => {'text' => 'Same as SvREFCNT_inc, but can only be used if you don\'t need the return
1544             value, and you know that I is not NULL. The macro doesn\'t need
1545             to return a meaningful value, or check for NULLness, so it\'s smaller
1546             and faster.
1547              
1548             void SvREFCNT_inc_simple_void_NN(SV* sv)','name' => 'SvREFCNT_inc_simple_void_NN'},'av_len' => {'text' => 'Returns the highest index in the array. The number of elements in the
1549             array is C. Returns -1 if the array is empty.
1550              
1551             I32 av_len(AV* ar)','name' => 'av_len'},'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
1552             hash key scalars, or full Copy On Write scalars if 5.9.0 is configured for
1553             COW)
1554              
1555             bool SvIsCOW(SV* sv)','name' => 'SvIsCOW'},'sv_unmagic' => {'text' => 'Removes all magic of type C from an SV.
1556              
1557             int sv_unmagic(SV* sv, int type)','name' => 'sv_unmagic'},'SvTAINT' => {'text' => 'Taints an SV if tainting is enabled.
1558              
1559             void SvTAINT(SV* sv)','name' => 'SvTAINT'},'sv_catsv' => {'text' => 'Concatenates the string from SV C onto the end of the string in
1560             SV C. Modifies C but not C. Handles \'get\' magic, but
1561             not \'set\' magic. See C.
1562              
1563             void sv_catsv(SV* dsv, SV* ssv)','name' => 'sv_catsv'},'SvPOK_on' => {'text' => 'Tells an SV that it is a string.
1564              
1565             void SvPOK_on(SV* sv)','name' => 'SvPOK_on'},'ax' => {'text' => 'Variable which is setup by C to indicate the stack base offset,
1566             used by the C, C and C macros. The C macro
1567             must be called prior to setup the C variable.
1568              
1569             I32 ax','name' => 'ax'},'mg_clear' => {'text' => 'Clear something magical that the SV represents. See C.
1570              
1571             int mg_clear(SV* sv)','name' => 'mg_clear'},'my_sprintf' => {'text' => 'The C library C, wrapped if necessary, to ensure that it will return
1572             the length of the string written to the buffer. Only rare pre-ANSI systems
1573             need the wrapper function - usually this is a direct call to C.
1574              
1575             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
1576             store that in UTF-8 in ustrp and its length in bytes in lenp. Note
1577             that the ustrp needs to be at least UTF8_MAXBYTES_CASE+1 bytes since the
1578             foldcase version may be longer than the original character (up to
1579             three characters).
1580              
1581             The first character of the foldcased version is returned
1582             (but note, as explained above, that there may be more.)
1583              
1584             UV to_utf8_fold(U8 *p, U8* ustrp, STRLEN *lenp)','name' => 'to_utf8_fold'},'to_utf8_upper' => {'text' => 'Convert the UTF-8 encoded character at p to its uppercase version and
1585             store that in UTF-8 in ustrp and its length in bytes in lenp. Note
1586             that the ustrp needs to be at least UTF8_MAXBYTES_CASE+1 bytes since
1587             the uppercase version may be longer than the original character.
1588              
1589             The first character of the uppercased version is returned
1590             (but note, as explained above, that there may be more.)
1591              
1592             UV to_utf8_upper(U8 *p, U8* ustrp, STRLEN *lenp)','name' => 'to_utf8_upper'},'gv_stashpv' => {'text' => 'Returns a pointer to the stash for a specified package. Uses C to
1593             determine the length of C, then calls C.
1594              
1595             HV* gv_stashpv(const char* name, I32 flags)','name' => 'gv_stashpv'},'SvPVutf8x_force' => {'text' => 'Like C, but converts sv to utf8 first if necessary.
1596             Guarantees to evaluate sv only once; use the more efficient C
1597             otherwise.
1598              
1599             char* SvPVutf8x_force(SV* sv, STRLEN len)','name' => 'SvPVutf8x_force'},'sv_vcatpvf_mg' => {'text' => 'Like C, but also handles \'set\' magic.
1600              
1601             Usually used via its frontend C.
1602              
1603             void sv_vcatpvf_mg(SV* sv, const char* pat, va_list* args)','name' => 'sv_vcatpvf_mg'},'PUSHi' => {'text' => 'Push an integer onto the stack. The stack must have room for this element.
1604             Handles \'set\' magic. Uses C, so C or C should be
1605             called to declare it. Do not call multiple C-oriented macros to
1606             return lists from XSUB\'s - see C instead. See also C and
1607             C.
1608              
1609             void PUSHi(IV iv)','name' => 'PUSHi'},'mXPUSHu' => {'text' => 'Push an unsigned integer onto the stack, extending the stack if necessary.
1610             Does not use C. See also C, C and C.
1611              
1612             void mXPUSHu(UV uv)','name' => 'mXPUSHu'},'hv_exists_ent' => {'text' => 'Returns a boolean indicating whether the specified hash key exists. C
1613             can be a valid precomputed hash value, or 0 to ask for it to be
1614             computed.
1615              
1616             bool hv_exists_ent(HV* tb, SV* key, U32 hash)','name' => 'hv_exists_ent'},'SvLEN_set' => {'text' => 'Set the actual length of the string which is in the SV. See C.
1617              
1618             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
1619             store that in UTF-8 in ustrp and its length in bytes in lenp. Note
1620             that the ustrp needs to be at least UTF8_MAXBYTES_CASE+1 bytes since the
1621             lowercase version may be longer than the original character.
1622              
1623             The first character of the lowercased version is returned
1624             (but note, as explained above, that there may be more.)
1625              
1626             UV to_utf8_lower(U8 *p, U8* ustrp, STRLEN *lenp)','name' => 'to_utf8_lower'},'SvNIOK' => {'text' => 'Returns a U32 value indicating whether the SV contains a number, integer or
1627             double.
1628              
1629             U32 SvNIOK(SV* sv)','name' => 'SvNIOK'},'unpack_str' => {'text' => 'The engine implementing unpack() Perl function. Note: parameters strbeg, new_s
1630             and ocnt are not used. This call should not be used, use unpackstring instead.
1631              
1632             I32 unpack_str(char *pat, char *patend, char *s, char *strbeg, char *strend, char **new_s, I32 ocnt, U32 flags)','name' => 'unpack_str'},'newSVpvf' => {'text' => 'Creates a new SV and initializes it with the string formatted like
1633             C.
1634              
1635             SV* newSVpvf(const char* pat, ...)','name' => 'newSVpvf'},'Newxc' => {'text' => 'The XSUB-writer\'s interface to the C C function, with
1636             cast. See also C.
1637              
1638             void Newxc(void* ptr, int nitems, type, cast)','name' => 'Newxc'},'sv_newref' => {'text' => 'Increment an SV\'s reference count. Use the C wrapper
1639             instead.
1640              
1641             SV* sv_newref(SV* sv)','name' => 'sv_newref'},'perl_destruct' => {'text' => 'Shuts down a Perl interpreter. See L.
1642              
1643             int perl_destruct(PerlInterpreter* interp)','name' => 'perl_destruct'},'XSRETURN_IV' => {'text' => 'Return an integer from an XSUB immediately. Uses C.
1644              
1645             void XSRETURN_IV(IV iv)','name' => 'XSRETURN_IV'},'SvIVX' => {'text' => 'Returns the raw value in the SV\'s IV slot, without checks or conversions.
1646             Only use when you are sure SvIOK is true. See also C.
1647              
1648             IV SvIVX(SV* sv)','name' => 'SvIVX'},'sv_uni_display' => {'text' => 'Build to the scalar dsv a displayable version of the scalar sv,
1649             the displayable version being at most pvlim bytes long
1650             (if longer, the rest is truncated and "..." will be appended).
1651              
1652             The flags argument is as in pv_uni_display().
1653              
1654             The pointer to the PV of the dsv is returned.
1655              
1656             char* sv_uni_display(SV *dsv, SV *ssv, STRLEN pvlim, UV flags)','name' => 'sv_uni_display'},'newSVpvs' => {'text' => 'Like C, but takes a literal string instead of a string/length pair.
1657              
1658             SV* newSVpvs(const char* s)','name' => 'newSVpvs'},'sv_vsetpvf' => {'text' => 'Works like C but copies the text into the SV instead of
1659             appending it. Does not handle \'set\' magic. See C.
1660              
1661             Usually used via its frontend C.
1662              
1663             void sv_vsetpvf(SV* sv, const char* pat, va_list* args)','name' => 'sv_vsetpvf'},'SvREFCNT_dec' => {'text' => 'Decrements the reference count of the given SV.
1664              
1665             void SvREFCNT_dec(SV* sv)','name' => 'SvREFCNT_dec'},'XCPT_CATCH' => {'text' => 'Introduces a catch block. See L.','name' => 'XCPT_CATCH'},'XST_mYES' => {'text' => 'Place C<&PL_sv_yes> into the specified position C on the
1666             stack.
1667              
1668             void XST_mYES(int pos)','name' => 'XST_mYES'},'SvIOK_off' => {'text' => 'Unsets the IV status of an SV.
1669              
1670             void SvIOK_off(SV* sv)','name' => 'SvIOK_off'},'sv_setsv' => {'text' => 'Copies the contents of the source SV C into the destination SV
1671             C. The source SV may be destroyed if it is mortal, so don\'t use this
1672             function if the source SV needs to be reused. Does not handle \'set\' magic.
1673             Loosely speaking, it performs a copy-by-value, obliterating any previous
1674             content of the destination.
1675              
1676             You probably want to use one of the assortment of wrappers, such as
1677             C, C, C and
1678             C.
1679              
1680             void sv_setsv(SV* dsv, SV* ssv)','name' => 'sv_setsv'},'POPs' => {'text' => 'Pops an SV off the stack.
1681              
1682             SV* POPs','name' => 'POPs'},'packlist' => {'text' => 'The engine implementing pack() Perl function.
1683              
1684             void packlist(SV *cat, char *pat, 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
1685             which guarantees to evaluate sv only once.
1686              
1687             NV SvNV(SV* sv)','name' => 'SvNV'},'gv_fetchmethod_autoload' => {'text' => 'Returns the glob which contains the subroutine to call to invoke the method
1688             on the C. In fact in the presence of autoloading this may be the
1689             glob for "AUTOLOAD". In this case the corresponding variable $AUTOLOAD is
1690             already setup.
1691              
1692             The third parameter of C determines whether
1693             AUTOLOAD lookup is performed if the given method is not present: non-zero
1694             means yes, look for AUTOLOAD; zero means no, don\'t look for AUTOLOAD.
1695             Calling C is equivalent to calling C
1696             with a non-zero C parameter.
1697              
1698             These functions grant C<"SUPER"> token as a prefix of the method name. Note
1699             that if you want to keep the returned glob for a long time, you need to
1700             check for it being "AUTOLOAD", since at the later time the call may load a
1701             different subroutine due to $AUTOLOAD changing its value. Use the glob
1702             created via a side effect to do this.
1703              
1704             These functions have the same side-effects and as C with
1705             C. C should be writable if contains C<\':\'> or C<\'
1706             \'\'>. The warning against passing the GV returned by C to
1707             C apply equally to these functions.
1708              
1709             GV* gv_fetchmethod_autoload(HV* stash, const char* name, I32 autoload)','name' => 'gv_fetchmethod_autoload'},'SvUTF8' => {'text' => 'Returns a U32 value indicating whether the SV contains UTF-8 encoded data.
1710             Call this after SvPV() in case any call to string overloading updates the
1711             internal flag.
1712              
1713             U32 SvUTF8(SV* sv)','name' => 'SvUTF8'},'SvTAINTED' => {'text' => 'Checks to see if an SV is tainted. Returns TRUE if it is, FALSE if
1714             not.
1715              
1716             bool SvTAINTED(SV* sv)','name' => 'SvTAINTED'},'sv_eq' => {'text' => 'Returns a boolean indicating whether the strings in the two SVs are
1717             identical. Is UTF-8 and \'use bytes\' aware, handles get magic, and will
1718             coerce its args to strings if necessary.
1719              
1720             I32 sv_eq(SV* sv1, SV* sv2)','name' => 'sv_eq'},'ix' => {'text' => 'Variable which is setup by C to indicate which of an
1721             XSUB\'s aliases was used to invoke it. See L.
1722              
1723             I32 ix','name' => 'ix'},'cv_undef' => {'text' => 'Clear out all the active components of a CV. This can happen either
1724             by an explicit C, or by the reference count going to zero.
1725             In the former case, we keep the CvOUTSIDE pointer, so that any anonymous
1726             children can still follow the full lexical scope chain.
1727              
1728             void cv_undef(CV* cv)','name' => 'cv_undef'},'StructCopy' => {'text' => 'This is an architecture-independent macro to copy one structure to another.
1729              
1730             void StructCopy(type src, type dest, type)','name' => 'StructCopy'},'XSRETURN_UV' => {'text' => 'Return an integer from an XSUB immediately. Uses C.
1731              
1732             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
1733             effects. Since we don\'t have to store a temporary value, it\'s faster.
1734              
1735             SV* SvREFCNT_inc_simple(SV* sv)','name' => 'SvREFCNT_inc_simple'},'get_cvn_flags' => {'text' => 'Returns the CV of the specified Perl subroutine. C are passed to
1736             C. If C is set and the Perl subroutine does not
1737             exist then it will be declared (which has the same effect as saying
1738             C). If C is not set and the subroutine does not exist
1739             then NULL is returned.
1740              
1741             NOTE: the perl_ form of this function is deprecated.
1742              
1743             CV* get_cvn_flags(const char* name, STRLEN len, I32 flags)','name' => 'get_cvn_flags'},'items' => {'text' => 'Variable which is setup by C to indicate the number of
1744             items on the stack. See L.
1745              
1746             I32 items','name' => 'items'},'XST_mPV' => {'text' => 'Place a copy of a string into the specified position C on the stack.
1747             The value is stored in a new mortal SV.
1748              
1749             void XST_mPV(int pos, char* str)','name' => 'XST_mPV'},'dXSI32' => {'text' => 'Sets up the C variable for an XSUB which has aliases. This is usually
1750             handled automatically by C.
1751              
1752             dXSI32;','name' => 'dXSI32'},'SvPVx' => {'text' => 'A version of C which guarantees to evaluate C only once.
1753             Only use this if C is an expression with side effects, otherwise use the
1754             more efficient C.
1755              
1756             char* SvPVx(SV* sv, STRLEN len)','name' => 'SvPVx'},'dXCPT' => {'text' => 'Set up necessary local variables for exception handling.
1757             See L.
1758              
1759             dXCPT;','name' => 'dXCPT'},'sv_tainted' => {'text' => 'Test an SV for taintedness. Use C instead.
1760             bool sv_tainted(SV* sv)','name' => 'sv_tainted'},'sv_grow' => {'text' => 'Expands the character buffer in the SV. If necessary, uses C and
1761             upgrades the SV to C. Returns a pointer to the character buffer.
1762             Use the C wrapper instead.
1763              
1764             char* sv_grow(SV* sv, STRLEN newlen)','name' => 'sv_grow'},'cv_const_sv' => {'text' => 'If C is a constant sub eligible for inlining. returns the constant
1765             value returned by the sub. Otherwise, returns NULL.
1766              
1767             Constant subs can be created with C or as described in
1768             L.
1769              
1770             SV* cv_const_sv(CV* cv)','name' => 'cv_const_sv'},'newSVnv' => {'text' => 'Creates a new SV and copies a floating point value into it.
1771             The reference count for the SV is set to 1.
1772              
1773             SV* newSVnv(NV n)','name' => 'newSVnv'},'XPUSHs' => {'text' => 'Push an SV onto the stack, extending the stack if necessary. Does not
1774             handle \'set\' magic. Does not use C. See also C,
1775             C and C.
1776              
1777             void XPUSHs(SV* sv)','name' => 'XPUSHs'},'HeVAL' => {'text' => 'Returns the value slot (type C) stored in the hash entry.
1778              
1779             SV* HeVAL(HE* he)','name' => 'HeVAL'},'HePV' => {'text' => 'Returns the key slot of the hash entry as a C value, doing any
1780             necessary dereferencing of possibly C keys. The length of the string
1781             is placed in C (this is a macro, so do I use C<&len>). If you do
1782             not care about what the length of the key is, you may use the global
1783             variable C, though this is rather less efficient than using a local
1784             variable. Remember though, that hash keys in perl are free to contain
1785             embedded nulls, so using C or similar is not a good way to find
1786             the length of hash keys. This is very similar to the C macro
1787             described elsewhere in this document. See also C.
1788              
1789             If you are using C to get values to pass to C to create a
1790             new SV, you should consider using C as it is more
1791             efficient.
1792              
1793             char* HePV(HE* he, STRLEN len)','name' => 'HePV'},'SvGETMAGIC' => {'text' => 'Invokes C on an SV if it has \'get\' magic. This macro evaluates its
1794             argument more than once.
1795              
1796             void SvGETMAGIC(SV* sv)','name' => 'SvGETMAGIC'},'pv_uni_display' => {'text' => 'Build to the scalar dsv a displayable version of the string spv,
1797             length len, the displayable version being at most pvlim bytes long
1798             (if longer, the rest is truncated and "..." will be appended).
1799              
1800             The flags argument can have UNI_DISPLAY_ISPRINT set to display
1801             isPRINT()able characters as themselves, UNI_DISPLAY_BACKSLASH
1802             to display the \\\\[nrfta\\\\] as the backslashed versions (like \'\\n\')
1803             (UNI_DISPLAY_BACKSLASH is preferred over UNI_DISPLAY_ISPRINT for \\\\).
1804             UNI_DISPLAY_QQ (and its alias UNI_DISPLAY_REGEX) have both
1805             UNI_DISPLAY_BACKSLASH and UNI_DISPLAY_ISPRINT turned on.
1806              
1807             The pointer to the PV of the dsv is returned.
1808              
1809             char* pv_uni_display(SV *dsv, U8 *spv, STRLEN len, STRLEN pvlim, UV flags)','name' => 'pv_uni_display'},'sv_inc' => {'text' => 'Auto-increment of the value in the SV, doing string to numeric conversion
1810             if necessary. Handles \'get\' magic.
1811              
1812             void sv_inc(SV* sv)','name' => 'sv_inc'},'sv_usepvn' => {'text' => 'Tells an SV to use C to find its string value. Implemented by
1813             calling C with C of 0, hence does not handle \'set\'
1814             magic. See C.
1815              
1816             void sv_usepvn(SV* sv, char* ptr, STRLEN len)','name' => 'sv_usepvn'},'SvPVbytex_force' => {'text' => 'Like C, but converts sv to byte representation first if necessary.
1817             Guarantees to evaluate sv only once; use the more efficient C
1818             otherwise.
1819              
1820             char* SvPVbytex_force(SV* sv, STRLEN len)','name' => 'SvPVbytex_force'},'SvREFCNT' => {'text' => 'Returns the value of the object\'s reference count.
1821              
1822             U32 SvREFCNT(SV* sv)','name' => 'SvREFCNT'},'warn' => {'text' => 'This is the XSUB-writer\'s interface to Perl\'s C function. Call this
1823             function the same way you call the C C function. See C.
1824              
1825             void warn(const char* pat, ...)','name' => 'warn'},'hv_delete' => {'text' => 'Deletes a key/value pair in the hash. The value SV is removed from the
1826             hash and returned to the caller. The C is the length of the key.
1827             The C value will normally be zero; if set to G_DISCARD then NULL
1828             will be returned.
1829              
1830             SV* hv_delete(HV* tb, const char* key, I32 klen, I32 flags)','name' => 'hv_delete'},'POP_MULTICALL' => {'text' => 'Closing bracket for a lightweight callback.
1831             See L.
1832              
1833             POP_MULTICALL;','name' => 'POP_MULTICALL'},'sv_cat_decode' => {'text' => 'The encoding is assumed to be an Encode object, the PV of the ssv is
1834             assumed to be octets in that encoding and decoding the input starts
1835             from the position which (PV + *offset) pointed to. The dsv will be
1836             concatenated the decoded UTF-8 string from ssv. Decoding will terminate
1837             when the string tstr appears in decoding output or the input ends on
1838             the PV of the ssv. The value which the offset points will be modified
1839             to the last input position on the ssv.
1840              
1841             Returns TRUE if the terminator was found, else returns FALSE.
1842              
1843             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
1844             the same function of this macro with an lvalue assignment to C.
1845             With future Perls, however, it will be more efficient to use
1846             C instead of the lvalue assignment to C.
1847              
1848             void SvIV_set(SV* sv, IV val)','name' => 'SvIV_set'},'sv_setiv' => {'text' => 'Copies an integer into the given SV, upgrading first if necessary.
1849             Does not handle \'set\' magic. See also C.
1850              
1851             void sv_setiv(SV* sv, IV num)','name' => 'sv_setiv'},'sv_report_used' => {'text' => 'Dump the contents of all SVs not yet freed. (Debugging aid).
1852              
1853             void sv_report_used()','name' => 'sv_report_used'},'EXTEND' => {'text' => 'Used to extend the argument stack for an XSUB\'s return values. Once
1854             used, guarantees that there is room for at least C to be pushed
1855             onto the stack.
1856              
1857             void EXTEND(SP, int nitems)','name' => 'EXTEND'},'SvNVX' => {'text' => 'Returns the raw value in the SV\'s NV slot, without checks or conversions.
1858             Only use when you are sure SvNOK is true. See also C.
1859              
1860             NV SvNVX(SV* sv)','name' => 'SvNVX'},'newSVuv' => {'text' => 'Creates a new SV and copies an unsigned integer into it.
1861             The reference count for the SV is set to 1.
1862              
1863             SV* newSVuv(UV u)','name' => 'newSVuv'},'gv_fetchmeth' => {'text' => 'Returns the glob with the given C and a defined subroutine or
1864             C. The glob lives in the given C, or in the stashes
1865             accessible via @ISA and UNIVERSAL::.
1866              
1867             The argument C should be either 0 or -1. If C, as a
1868             side-effect creates a glob with the given C in the given C
1869             which in the case of success contains an alias for the subroutine, and sets
1870             up caching info for this glob. Similarly for all the searched stashes.
1871              
1872             This function grants C<"SUPER"> token as a postfix of the stash name. The
1873             GV returned from C may be a method cache entry, which is not
1874             visible to Perl code. So when calling C, you should not use
1875             the GV directly; instead, you should use the method\'s CV, which can be
1876             obtained from the GV with the C macro.
1877              
1878             GV* gv_fetchmeth(HV* stash, const char* name, STRLEN len, I32 level)','name' => 'gv_fetchmeth'},'HeHASH' => {'text' => 'Returns the computed hash stored in the hash entry.
1879              
1880             U32 HeHASH(HE* he)','name' => 'HeHASH'},'SvIOK' => {'text' => 'Returns a U32 value indicating whether the SV contains an integer.
1881              
1882             U32 SvIOK(SV* sv)','name' => 'SvIOK'},'SvPV_force' => {'text' => 'Like C but will force the SV into containing just a string
1883             (C). You want force if you are going to update the C
1884             directly.
1885              
1886             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,
1887             doing any necessary dereferencing of possibly C keys. The value returned
1888             will be 0 or non-0, not necessarily 1 (or even a value with any low bits set),
1889             so B blindly assign this to a C variable, as C may be a
1890             typedef for C.
1891              
1892             char* HeUTF8(HE* he, STRLEN len)','name' => 'HeUTF8'},'SvLEN' => {'text' => 'Returns the size of the string buffer in the SV, not including any part
1893             attributable to C. See C.
1894              
1895             STRLEN SvLEN(SV* sv)','name' => 'SvLEN'},'SvPOK_only_UTF8' => {'text' => 'Tells an SV that it is a string and disables all other OK bits,
1896             and leaves the UTF-8 status as it was.
1897              
1898             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.
1899              
1900             int mg_get(SV* sv)','name' => 'mg_get'},'SvTRUE' => {'text' => 'Returns a boolean indicating whether Perl would evaluate the SV as true or
1901             false, defined or undefined. Does not handle \'get\' magic.
1902              
1903             bool SvTRUE(SV* sv)','name' => 'SvTRUE'},'grok_hex' => {'text' => 'converts a string representing a hex number to numeric form.
1904              
1905             On entry I and I<*len> give the string to scan, I<*flags> gives
1906             conversion flags, and I should be NULL or a pointer to an NV.
1907             The scan stops at the end of the string, or the first invalid character.
1908             Unless C is set in I<*flags>, encountering an
1909             invalid character will also trigger a warning.
1910             On return I<*len> is set to the length of the scanned string,
1911             and I<*flags> gives output flags.
1912              
1913             If the value is <= UV_MAX it is returned as a UV, the output flags are clear,
1914             and nothing is written to I<*result>. If the value is > UV_MAX C
1915             returns UV_MAX, sets C in the output flags,
1916             and writes the value to I<*result> (or the value is discarded if I
1917             is NULL).
1918              
1919             The hex number may optionally be prefixed with "0x" or "x" unless
1920             C is set in I<*flags> on entry. If
1921             C is set in I<*flags> then the hex
1922             number may use \'_\' characters to separate digits.
1923              
1924             UV grok_hex(char* start, STRLEN* len, I32* flags, NV *result)','name' => 'grok_hex'},'hv_iternext_flags' => {'text' => 'Returns entries from a hash iterator. See C and C.
1925             The C value will normally be zero; if HV_ITERNEXT_WANTPLACEHOLDERS is
1926             set the placeholders keys (for restricted hashes) will be returned in addition
1927             to normal keys. By default placeholders are automatically skipped over.
1928             Currently a placeholder is implemented with a value that is
1929             C<&Perl_sv_placeholder>. Note that the implementation of placeholders and
1930             restricted hashes may change, and the implementation currently is
1931             insufficiently abstracted for any change to be tidy.
1932              
1933             NOTE: this function is experimental and may change or be
1934             removed without notice.
1935              
1936             HE* hv_iternext_flags(HV* tb, I32 flags)','name' => 'hv_iternext_flags'},'is_utf8_string_loclen' => {'text' => 'Like is_utf8_string() but stores the location of the failure (in the
1937             case of "utf8ness failure") or the location s+len (in the case of
1938             "utf8ness success") in the C, and the number of UTF-8
1939             encoded characters in the C.
1940              
1941             See also is_utf8_string_loc() and is_utf8_string().
1942              
1943             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
1944             be on the stack. See L.
1945              
1946             NOTE: the perl_ form of this function is deprecated.
1947              
1948             I32 call_method(const char* methname, I32 flags)','name' => 'call_method'},'SvLOCK' => {'text' => 'Arranges for a mutual exclusion lock to be obtained on sv if a suitable module
1949             has been loaded.
1950              
1951             void SvLOCK(SV* sv)','name' => 'SvLOCK'},'sv_vsetpvfn' => {'text' => 'Works like C but copies the text into the SV instead of
1952             appending it.
1953              
1954             Usually used via one of its frontends C and C.
1955              
1956             void sv_vsetpvfn(SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)','name' => 'sv_vsetpvfn'},'perl_parse' => {'text' => 'Tells a Perl interpreter to parse a Perl script. See L.
1957              
1958             int perl_parse(PerlInterpreter* interp, XSINIT_t xsinit, int argc, char** argv, char** env)','name' => 'perl_parse'},'to_utf8_case' => {'text' => 'The "p" contains the pointer to the UTF-8 string encoding
1959             the character that is being converted.
1960              
1961             The "ustrp" is a pointer to the character buffer to put the
1962             conversion result to. The "lenp" is a pointer to the length
1963             of the result.
1964              
1965             The "swashp" is a pointer to the swash to use.
1966              
1967             Both the special and normal mappings are stored lib/unicore/To/Foo.pl,
1968             and loaded by SWASHNEW, using lib/utf8_heavy.pl. The special (usually,
1969             but not always, a multicharacter mapping), is tried first.
1970              
1971             The "special" is a string like "utf8::ToSpecLower", which means the
1972             hash %utf8::ToSpecLower. The access to the hash is through
1973             Perl_to_utf8_case().
1974              
1975             The "normal" is a string like "ToLower" which means the swash
1976             %utf8::ToLower.
1977              
1978             UV to_utf8_case(U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, char *normal, char *special)','name' => 'to_utf8_case'},'av_clear' => {'text' => 'Clears an array, making it empty. Does not free the memory used by the
1979             array itself.
1980              
1981             void av_clear(AV* ar)','name' => 'av_clear'},'sv_force_normal' => {'text' => 'Undo various types of fakery on an SV: if the PV is a shared string, make
1982             a private copy; if we\'re a ref, stop refing; if we\'re a glob, downgrade to
1983             an xpvmg. See also C.
1984              
1985             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
1986             array. The array will grow automatically to accommodate the addition. You
1987             must then use C to assign values to these new elements.
1988              
1989             void av_unshift(AV* ar, I32 num)','name' => 'av_unshift'},'SvREFCNT_inc_NN' => {'text' => 'Same as SvREFCNT_inc, but can only be used if you know I
1990             is not NULL. Since we don\'t have to check the NULLness, it\'s faster
1991             and smaller.
1992              
1993             SV* SvREFCNT_inc_NN(SV* sv)','name' => 'SvREFCNT_inc_NN'},'POPpbytex' => {'text' => 'Pops a string off the stack which must consist of bytes i.e. characters < 256.
1994              
1995             char* POPpbytex','name' => 'POPpbytex'},'SvUVX' => {'text' => 'Returns the raw value in the SV\'s UV slot, without checks or conversions.
1996             Only use when you are sure SvIOK is true. See also C.
1997              
1998             UV SvUVX(SV* sv)','name' => 'SvUVX'},'SvSetMagicSV' => {'text' => 'Like C, but does any set magic required afterwards.
1999              
2000             void SvSetMagicSV(SV* dsb, SV* ssv)','name' => 'SvSetMagicSV'},'sv_utf8_decode' => {'text' => 'If the PV of the SV is an octet sequence in UTF-8
2001             and contains a multiple-byte character, the C flag is turned on
2002             so that it looks like a character. If the PV contains only single-byte
2003             characters, the C flag stays being off.
2004             Scans PV for validity and returns false if the PV is invalid UTF-8.
2005              
2006             NOTE: this function is experimental and may change or be
2007             removed without notice.
2008              
2009             bool sv_utf8_decode(SV *sv)','name' => 'sv_utf8_decode'},'hv_stores' => {'text' => 'Like C, but takes a literal string instead of a string/length pair
2010             and omits the hash parameter.
2011              
2012             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.
2013              
2014             NOTE: the perl_ form of this function is deprecated.
2015              
2016             I32 eval_sv(SV* sv, I32 flags)','name' => 'eval_sv'},'FREETMPS' => {'text' => 'Closing bracket for temporaries on a callback. See C and
2017             L.
2018              
2019             FREETMPS;','name' => 'FREETMPS'},'Move' => {'text' => 'The XSUB-writer\'s interface to the C C function. The C is the
2020             source, C is the destination, C is the number of items, and C is
2021             the type. Can do overlapping moves. See also C.
2022              
2023             void Move(void* src, void* dest, int nitems, type)','name' => 'Move'},'sv_catpvn_flags' => {'text' => 'Concatenates the string onto the end of the string which is in the SV. The
2024             C indicates number of bytes to copy. If the SV has the UTF-8
2025             status set, then the bytes appended should be valid UTF-8.
2026             If C has C bit set, will C on C if
2027             appropriate, else not. C and C are implemented
2028             in terms of this function.
2029              
2030             void sv_catpvn_flags(SV* sv, const char* ptr, STRLEN len, I32 flags)','name' => 'sv_catpvn_flags'},'sv_pvn_force' => {'text' => 'Get a sensible string out of the SV somehow.
2031             A private implementation of the C macro for compilers which
2032             can\'t cope with complex macro expressions. Always use the macro instead.
2033              
2034             char* sv_pvn_force(SV* sv, STRLEN* lp)','name' => 'sv_pvn_force'},'GIMME' => {'text' => 'A backward-compatible version of C which can only return
2035             C or C; in a void context, it returns C.
2036             Deprecated. Use C instead.
2037              
2038             U32 GIMME','name' => 'GIMME'},'sv_2iv_flags' => {'text' => 'Return the integer value of an SV, doing any necessary string
2039             conversion. If flags includes SV_GMAGIC, does an mg_get() first.
2040             Normally used via the C and C macros.
2041              
2042             IV sv_2iv_flags(SV* sv, I32 flags)','name' => 'sv_2iv_flags'},'newXS' => {'text' => 'Used by C to hook up XSUBs as Perl subs. I needs to be
2043             static storage, as it is used directly as CvFILE(), without a copy being made.','name' => 'newXS'},'isALNUM' => {'text' => 'Returns a boolean indicating whether the C C is an ASCII alphanumeric
2044             character (including underscore) or digit.
2045              
2046             bool isALNUM(char ch)','name' => 'isALNUM'},'XCPT_RETHROW' => {'text' => 'Rethrows a previously caught exception. See L.
2047              
2048             XCPT_RETHROW;','name' => 'XCPT_RETHROW'},'my_snprintf' => {'text' => 'The C library C functionality, if available and
2049             standards-compliant (uses C, actually). However, if the
2050             C is not available, will unfortunately use the unsafe
2051             C which can overrun the buffer (there is an overrun check,
2052             but that may be too late). Consider using C instead, or
2053             getting C.
2054              
2055             int my_snprintf(char *buffer, const Size_t len, const char *format, ...)','name' => 'my_snprintf'},'SvIOK_UV' => {'text' => 'Returns a boolean indicating whether the SV contains an unsigned integer.
2056              
2057             bool SvIOK_UV(SV* sv)','name' => 'SvIOK_UV'},'PUSHmortal' => {'text' => 'Push a new mortal SV onto the stack. The stack must have room for this
2058             element. Does not use C. See also C, C and C.
2059              
2060             void PUSHmortal()','name' => 'PUSHmortal'},'perl_alloc' => {'text' => 'Allocates a new Perl interpreter. See L.
2061              
2062             PerlInterpreter* perl_alloc()','name' => 'perl_alloc'},'perl_construct' => {'text' => 'Initializes a new Perl interpreter. See L.
2063              
2064             void perl_construct(PerlInterpreter* interp)','name' => 'perl_construct'},'SvUOK' => {'text' => 'Returns a boolean indicating whether the SV contains an unsigned integer.
2065              
2066             bool SvUOK(SV* sv)','name' => 'SvUOK'},'sv_dec' => {'text' => 'Auto-decrement of the value in the SV, doing string to numeric conversion
2067             if necessary. Handles \'get\' magic.
2068              
2069             void sv_dec(SV* sv)','name' => 'sv_dec'},'strLE' => {'text' => 'Test two strings to see if the first, C, is less than or equal to the
2070             second, C. Returns true or false.
2071              
2072             bool strLE(char* s1, char* s2)','name' => 'strLE'},'pv_display' => {'text' => 'Similar to
2073              
2074             pv_escape(dsv,pv,cur,pvlim,PERL_PV_ESCAPE_QUOTE);
2075              
2076             except that an additional "\\0" will be appended to the string when
2077             len > cur and pv[cur] is "\\0".
2078              
2079             Note that the final string may be up to 7 chars longer than pvlim.
2080              
2081             char* pv_display(SV *dsv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim)','name' => 'pv_display'},'newSVpvn_flags' => {'text' => 'Creates a new SV and copies a string into it. The reference count for the
2082             SV is set to 1. Note that if C is zero, Perl will create a zero length
2083             string. You are responsible for ensuring that the source string is at least
2084             C bytes long. If the C argument is NULL the new SV will be undefined.
2085             Currently the only flag bits accepted are C and C.
2086             If C is set, then C is called on the result before
2087             returning. If C is set, then it will be set on the new SV.
2088             C is a convenience wrapper for this function, defined as
2089              
2090             #define newSVpvn_utf8(s, len, u) \\
2091             newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0)
2092              
2093             SV* newSVpvn_flags(const char* s, STRLEN len, U32 flags)','name' => 'newSVpvn_flags'},'sv_2pvbyte_nolen' => {'text' => 'Return a pointer to the byte-encoded representation of the SV.
2094             May cause the SV to be downgraded from UTF-8 as a side-effect.
2095              
2096             Usually accessed via the C macro.
2097              
2098             char* sv_2pvbyte_nolen(SV* sv)','name' => 'sv_2pvbyte_nolen'},'SvOK' => {'text' => 'Returns a U32 value indicating whether the value is an SV. It also tells
2099             whether the value is defined or not.
2100              
2101             U32 SvOK(SV* sv)','name' => 'SvOK'},'sv_setref_nv' => {'text' => 'Copies a double into a new SV, optionally blessing the SV. The C
2102             argument will be upgraded to an RV. That RV will be modified to point to
2103             the new SV. The C argument indicates the package for the
2104             blessing. Set C to C to avoid the blessing. The new SV
2105             will have a reference count of 1, and the RV will be returned.
2106              
2107             SV* sv_setref_nv(SV* rv, const char* classname, NV nv)','name' => 'sv_setref_nv'},'uvchr_to_utf8' => {'text' => 'Adds the UTF-8 representation of the Native codepoint C to the end
2108             of the string C; C should be have at least C free
2109             bytes available. The return value is the pointer to the byte after the
2110             end of the new character. In other words,
2111              
2112             d = uvchr_to_utf8(d, uv);
2113              
2114             is the recommended wide native character-aware way of saying
2115              
2116             *(d++) = uv;
2117              
2118             U8* uvchr_to_utf8(U8 *d, UV uv)','name' => 'uvchr_to_utf8'},'isDIGIT' => {'text' => 'Returns a boolean indicating whether the C C is an ASCII
2119             digit.
2120              
2121             bool isDIGIT(char ch)','name' => 'isDIGIT'},'eval_pv' => {'text' => 'Tells Perl to C the given string and return an SV* result.
2122              
2123             NOTE: the perl_ form of this function is deprecated.
2124              
2125             SV* eval_pv(const char* p, I32 croak_on_error)','name' => 'eval_pv'},'sv_usepvn_flags' => {'text' => 'Tells an SV to use C to find its string value. Normally the
2126             string is stored inside the SV but sv_usepvn allows the SV to use an
2127             outside string. The C should point to memory that was allocated
2128             by C. The string length, C, must be supplied. By default
2129             this function will realloc (i.e. move) the memory pointed to by C,
2130             so that pointer should not be freed or used by the programmer after
2131             giving it to sv_usepvn, and neither should any pointers from "behind"
2132             that pointer (e.g. ptr + 1) be used.
2133              
2134             If C & SV_SMAGIC is true, will call SvSETMAGIC. If C &
2135             SV_HAS_TRAILING_NUL is true, then C must be NUL, and the realloc
2136             will be skipped. (i.e. the buffer is actually at least 1 byte longer than
2137             C, and already meets the requirements for storing in C)
2138              
2139             void sv_usepvn_flags(SV* sv, char* ptr, STRLEN len, U32 flags)','name' => 'sv_usepvn_flags'},'hv_assert' => {'text' => 'Check that a hash is in an internally consistent state.
2140              
2141             void hv_assert(HV* tb)','name' => 'hv_assert'},'my_vsnprintf' => {'text' => 'The C library C if available and standards-compliant.
2142             However, if if the C is not available, will unfortunately
2143             use the unsafe C which can overrun the buffer (there is an
2144             overrun check, but that may be too late). Consider using
2145             C instead, or getting C.
2146              
2147             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
2148             C to invoke destructors and free up any memory used by
2149             the body; finally, deallocate the SV\'s head itself.
2150             Normally called via a wrapper macro C.
2151              
2152             void sv_free(SV* sv)','name' => 'sv_free'},'SvPVbyte_force' => {'text' => 'Like C, but converts sv to byte representation first if necessary.
2153              
2154             char* SvPVbyte_force(SV* sv, STRLEN len)','name' => 'SvPVbyte_force'},'newCONSTSUB' => {'text' => 'Creates a constant sub equivalent to Perl C which is
2155             eligible for inlining at compile-time.
2156              
2157             CV* newCONSTSUB(HV* stash, char* name, SV* sv)','name' => 'newCONSTSUB'},'SvSHARE' => {'text' => 'Arranges for sv to be shared between threads if a suitable module
2158             has been loaded.
2159              
2160             void SvSHARE(SV* sv)','name' => 'SvSHARE'},'av_pop' => {'text' => 'Pops an SV off the end of the array. Returns C<&PL_sv_undef> if the array
2161             is empty.
2162              
2163             SV* av_pop(AV* ar)','name' => 'av_pop'},'croak' => {'text' => 'This is the XSUB-writer\'s interface to Perl\'s C function.
2164             Normally call this function the same way you call the C C
2165             function. Calling C returns control directly to Perl,
2166             sidestepping the normal C order of execution. See C.
2167              
2168             If you want to throw an exception object, assign the object to
2169             C<$@> and then pass C to croak():
2170              
2171             errsv = get_sv("@", TRUE);
2172             sv_setsv(errsv, exception_object);
2173             croak(NULL);
2174              
2175             void croak(const char* pat, ...)','name' => 'croak'},'sortsv' => {'text' => 'Sort an array. Here is an example:
2176              
2177             sortsv(AvARRAY(av), av_len(av)+1, Perl_sv_cmp_locale);
2178              
2179             See lib/sort.pm for details about controlling the sorting algorithm.
2180              
2181             void sortsv(SV** array, size_t num_elts, SVCOMPARE_t cmp)','name' => 'sortsv'},'THIS' => {'text' => 'Variable which is setup by C to designate the object in a C++
2182             XSUB. This is always the proper type for the C++ object. See C and
2183             L.
2184              
2185             (whatever) THIS','name' => 'THIS'},'XSRETURN' => {'text' => 'Return from XSUB, indicating number of items on the stack. This is usually
2186             handled by C.
2187              
2188             void XSRETURN(int nitems)','name' => 'XSRETURN'},'scan_bin' => {'text' => 'For backwards compatibility. Use C instead.
2189              
2190             NV scan_bin(char* start, STRLEN len, STRLEN* retlen)','name' => 'scan_bin'},'Nullcv' => {'text' => 'Null CV pointer.','name' => 'Nullcv'},'sv_2pv_nolen' => {'text' => 'Like C, but doesn\'t return the length too. You should usually
2191             use the macro wrapper C instead.
2192             char* sv_2pv_nolen(SV* sv)','name' => 'sv_2pv_nolen'},'get_av' => {'text' => 'Returns the AV of the specified Perl array. If C is set and the
2193             Perl variable does not exist then it will be created. If C is not
2194             set and the variable does not exist then NULL is returned.
2195              
2196             NOTE: the perl_ form of this function is deprecated.
2197              
2198             AV* get_av(const char* name, I32 create)','name' => 'get_av'},'MULTICALL' => {'text' => 'Make a lightweight callback. See L.
2199              
2200             MULTICALL;','name' => 'MULTICALL'},'SvPVbyte' => {'text' => 'Like C, but converts sv to byte representation first if necessary.
2201              
2202             char* SvPVbyte(SV* sv, STRLEN len)','name' => 'SvPVbyte'},'PoisonFree' => {'text' => 'PoisonWith(0xEF) for catching access to freed memory.
2203              
2204             void PoisonFree(void* dest, int nitems, type)','name' => 'PoisonFree'},'toUPPER' => {'text' => 'Converts the specified character to uppercase.
2205              
2206             char toUPPER(char ch)','name' => 'toUPPER'},'is_utf8_string_loc' => {'text' => 'Like is_utf8_string() but stores the location of the failure (in the
2207             case of "utf8ness failure") or the location s+len (in the case of
2208             "utf8ness success") in the C.
2209              
2210             See also is_utf8_string_loclen() and is_utf8_string().
2211              
2212             bool is_utf8_string_loc(U8 *s, STRLEN len, U8 **p)','name' => 'is_utf8_string_loc'},'SAVETMPS' => {'text' => 'Opening bracket for temporaries on a callback. See C and
2213             L.
2214              
2215             SAVETMPS;','name' => 'SAVETMPS'},'AvFILL' => {'text' => 'Same as C. Deprecated, use C instead.
2216              
2217             int AvFILL(AV* av)','name' => 'AvFILL'},'sv_gets' => {'text' => 'Get a line from the filehandle and store it into the SV, optionally
2218             appending to the currently-stored string.
2219              
2220             char* sv_gets(SV* sv, PerlIO* fp, I32 append)','name' => 'sv_gets'},'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.
2221             Guarantees to evaluate sv only once; use the more efficient C
2222             otherwise.
2223              
2224             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
2225             possible to set C<*st> and C<*gvp> to the stash and GV associated with it.
2226             The flags in C are passed to sv_fetchsv.
2227              
2228             CV* sv_2cv(SV* sv, HV** st, GV** gvp, I32 lref)','name' => 'sv_2cv'},'SvPV_force_nomg' => {'text' => 'Like C but will force the SV into containing just a string
2229             (C). You want force if you are going to update the C
2230             directly. Doesn\'t process magic.
2231              
2232             char* SvPV_force_nomg(SV* sv, STRLEN len)','name' => 'SvPV_force_nomg'},'SvSetSV_nosteal' => {'text' => 'Calls a non-destructive version of C if dsv is not the same as
2233             ssv. May evaluate arguments more than once.
2234              
2235             void SvSetSV_nosteal(SV* dsv, SV* ssv)','name' => 'SvSetSV_nosteal'},'SvPOK_only' => {'text' => 'Tells an SV that it is a string and disables all other OK bits.
2236             Will also turn off the UTF-8 status.
2237              
2238             void SvPOK_only(SV* sv)','name' => 'SvPOK_only'},'dUNDERBAR' => {'text' => 'Sets up the C variable for an XSUB that wishes to use
2239             C.
2240              
2241             dUNDERBAR;','name' => 'dUNDERBAR'},'sv_usepvn_mg' => {'text' => 'Like C, but also handles \'set\' magic.
2242              
2243             void sv_usepvn_mg(SV *sv, char *ptr, STRLEN len)','name' => 'sv_usepvn_mg'},'XCPT_TRY_START' => {'text' => 'Starts a try block. See L.','name' => 'XCPT_TRY_START'},'sv_pvbyte' => {'text' => 'Use C instead.
2244              
2245             char* sv_pvbyte(SV *sv)','name' => 'sv_pvbyte'},'sv_uv' => {'text' => 'A private implementation of the C macro for compilers which can\'t
2246             cope with complex macro expressions. Always use the macro instead.
2247              
2248             UV sv_uv(SV* sv)','name' => 'sv_uv'},'hv_fetch' => {'text' => 'Returns the SV which corresponds to the specified key in the hash. The
2249             C is the length of the key. If C is set then the fetch will be
2250             part of a store. Check that the return value is non-null before
2251             dereferencing it to an C.
2252              
2253             See L for more
2254             information on how to use this function on tied hashes.
2255              
2256             SV** hv_fetch(HV* tb, const char* key, I32 klen, I32 lval)','name' => 'hv_fetch'},'sv_unref_flags' => {'text' => 'Unsets the RV status of the SV, and decrements the reference count of
2257             whatever was being referenced by the RV. This can almost be thought of
2258             as a reversal of C. The C argument can contain
2259             C to force the reference count to be decremented
2260             (otherwise the decrementing is conditional on the reference count being
2261             different from one or the reference being a readonly SV).
2262             See C.
2263              
2264             void sv_unref_flags(SV* sv, 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.
2265              
2266             SV* hv_scalar(HV* hv)','name' => 'hv_scalar'},'SvRV' => {'text' => 'Dereferences an RV to return the SV.
2267              
2268             SV* SvRV(SV* sv)','name' => 'SvRV'},'Nullch' => {'text' => 'Null character pointer.','name' => 'Nullch'},'mg_copy' => {'text' => 'Copies the magic from one SV to another. See C.
2269              
2270             int mg_copy(SV* sv, SV* nsv, const char* key, I32 klen)','name' => 'mg_copy'},'MARK' => {'text' => 'Stack marker variable for the XSUB. See C.','name' => 'MARK'},'grok_oct' => {'text' => 'converts a string representing an octal number to numeric form.
2271              
2272             On entry I and I<*len> give the string to scan, I<*flags> gives
2273             conversion flags, and I should be NULL or a pointer to an NV.
2274             The scan stops at the end of the string, or the first invalid character.
2275             Unless C is set in I<*flags>, encountering an
2276             invalid character will also trigger a warning.
2277             On return I<*len> is set to the length of the scanned string,
2278             and I<*flags> gives output flags.
2279              
2280             If the value is <= UV_MAX it is returned as a UV, the output flags are clear,
2281             and nothing is written to I<*result>. If the value is > UV_MAX C
2282             returns UV_MAX, sets C in the output flags,
2283             and writes the value to I<*result> (or the value is discarded if I
2284             is NULL).
2285              
2286             If C is set in I<*flags> then the octal
2287             number may use \'_\' characters to separate digits.
2288              
2289             UV grok_oct(char* start, STRLEN* len_p, I32* flags, NV *result)','name' => 'grok_oct'},'sv_rvweaken' => {'text' => 'Weaken a reference: set the C flag on this RV; give the
2290             referred-to SV C magic if it hasn\'t already; and
2291             push a back-reference to this RV onto the array of backreferences
2292             associated with that magic.
2293              
2294             SV* sv_rvweaken(SV *sv)','name' => 'sv_rvweaken'},'scan_hex' => {'text' => 'For backwards compatibility. Use C instead.
2295              
2296             NV scan_hex(char* start, STRLEN len, STRLEN* retlen)','name' => 'scan_hex'},'newSVpvn' => {'text' => 'Creates a new SV and copies a string into it. The reference count for the
2297             SV is set to 1. Note that if C is zero, Perl will create a zero length
2298             string. You are responsible for ensuring that the source string is at least
2299             C bytes long. If the C argument is NULL the new SV will be undefined.
2300              
2301             SV* newSVpvn(const char* s, STRLEN len)','name' => 'newSVpvn'},'sv_magicext' => {'text' => 'Adds magic to an SV, upgrading it if necessary. Applies the
2302             supplied vtable and returns a pointer to the magic added.
2303              
2304             Note that C will allow things that C will not.
2305             In particular, you can add magic to SvREADONLY SVs, and add more than
2306             one instance of the same \'how\'.
2307              
2308             If C is greater than zero then a C I of C is
2309             stored, if C is zero then C is stored as-is and - as another
2310             special case - if C<(name && namlen == HEf_SVKEY)> then C is assumed
2311             to contain an C and is stored as-is with its REFCNT incremented.
2312              
2313             (This is now used as a subroutine by C.)
2314              
2315             MAGIC * sv_magicext(SV* sv, SV* obj, int how, MGVTBL *vtbl, const char* name, I32 namlen)','name' => 'sv_magicext'},'av_push' => {'text' => 'Pushes an SV onto the end of the array. The array will grow automatically
2316             to accommodate the addition.
2317              
2318             void av_push(AV* ar, SV* val)','name' => 'av_push'},'unpackstring' => {'text' => 'The engine implementing unpack() Perl function. C puts the
2319             extracted list items on the stack and returns the number of elements.
2320             Issue C before and C after the call to this function.
2321              
2322             I32 unpackstring(char *pat, char *patend, char *s, char *strend, U32 flags)','name' => 'unpackstring'},'POPn' => {'text' => 'Pops a double off the stack.
2323              
2324             NV POPn','name' => 'POPn'},'XSRETURN_NO' => {'text' => 'Return C<&PL_sv_no> from an XSUB immediately. Uses C.
2325              
2326             XSRETURN_NO;','name' => 'XSRETURN_NO'},'av_extend' => {'text' => 'Pre-extend an array. The C is the index to which the array should be
2327             extended.
2328              
2329             void av_extend(AV* ar, I32 key)','name' => 'av_extend'},'newRV_noinc' => {'text' => 'Creates an RV wrapper for an SV. The reference count for the original
2330             SV is B incremented.
2331              
2332             SV* newRV_noinc(SV* sv)','name' => 'newRV_noinc'},'hv_iternext' => {'text' => 'Returns entries from a hash iterator. See C.
2333              
2334             You may call C or C on the hash entry that the
2335             iterator currently points to, without losing your place or invalidating your
2336             iterator. Note that in this case the current entry is deleted from the hash
2337             with your iterator holding the last reference to it. Your iterator is flagged
2338             to free the entry on the next call to C, so you must not discard
2339             your iterator immediately else the entry will leak - call C to
2340             trigger the resource deallocation.
2341              
2342             HE* hv_iternext(HV* tb)','name' => 'hv_iternext'},'hv_iterinit' => {'text' => 'Prepares a starting point to traverse a hash table. Returns the number of
2343             keys in the hash (i.e. the same as C). The return value is
2344             currently only meaningful for hashes without tie magic.
2345              
2346             NOTE: Before version 5.004_65, C used to return the number of
2347             hash buckets that happen to be in use. If you still need that esoteric
2348             value, you can get it through the macro C.
2349              
2350              
2351             I32 hv_iterinit(HV* tb)','name' => 'hv_iterinit'}};};
2352              
2353 1         15 my $self = bless({
2354             'index' => $VAR1,
2355             perl_version => '5.008009',
2356             } => $class);
2357 1         310 return $self;
2358             }
2359              
2360             1;