File Coverage

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