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 |
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; |