| blib/lib/Perl/APIReference/V5_020_002.pm | |||
|---|---|---|---|
| Criterion | Covered | Total | % |
| statement | 15 | 15 | 100.0 |
| branch | n/a | ||
| condition | n/a | ||
| subroutine | 4 | 4 | 100.0 |
| pod | 1 | 1 | 100.0 |
| total | 20 | 20 | 100.0 |
| line | stmt | bran | cond | sub | pod | time | code |
|---|---|---|---|---|---|---|---|
| 1 | package Perl::APIReference::V5_020_002; | ||||||
| 2 | 1 | 1 | 5 | use strict; | |||
| 1 | 1 | ||||||
| 1 | 41 | ||||||
| 3 | 1 | 1 | 4 | use warnings; | |||
| 1 | 2 | ||||||
| 1 | 29 | ||||||
| 4 | 1 | 1 | 4 | use parent 'Perl::APIReference'; | |||
| 1 | 2 | ||||||
| 1 | 6 | ||||||
| 5 | |||||||
| 6 | sub new { | ||||||
| 7 | 1 | 1 | 1 | 2 | my $class = shift; | ||
| 8 | 1 | 2 | my $VAR1; | ||||
| 9 | |||||||
| 10 | 1 | 3 | do{$VAR1 = {'AvFILL' => {'name' => 'AvFILL','text' => 'Same as C |
||||
| 1 | 1900 | ||||||
| 11 | |||||||
| 12 | int AvFILL(AV* av)'},'BhkDISABLE' => {'name' => 'BhkDISABLE','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 13 | removed without notice. | ||||||
| 14 | |||||||
| 15 | |||||||
| 16 | Temporarily disable an entry in this BHK structure, by clearing the | ||||||
| 17 | appropriate flag. I |
||||||
| 18 | entry to disable. | ||||||
| 19 | |||||||
| 20 | void BhkDISABLE(BHK *hk, which)'},'BhkENABLE' => {'name' => 'BhkENABLE','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 21 | removed without notice. | ||||||
| 22 | |||||||
| 23 | |||||||
| 24 | Re-enable an entry in this BHK structure, by setting the appropriate | ||||||
| 25 | flag. I |
||||||
| 26 | This will assert (under -DDEBUGGING) if the entry doesn\'t contain a valid | ||||||
| 27 | pointer. | ||||||
| 28 | |||||||
| 29 | void BhkENABLE(BHK *hk, which)'},'BhkENTRY_set' => {'name' => 'BhkENTRY_set','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 30 | removed without notice. | ||||||
| 31 | |||||||
| 32 | |||||||
| 33 | Set an entry in the BHK structure, and set the flags to indicate it is | ||||||
| 34 | valid. I |
||||||
| 35 | The type of I |
||||||
| 36 | |||||||
| 37 | void BhkENTRY_set(BHK *hk, which, void *ptr)'},'CLASS' => {'name' => 'CLASS','text' => 'Variable which is setup by C |
||||||
| 38 | class name for a C++ XS constructor. This is always a C |
||||||
| 39 | |||||||
| 40 | char* CLASS'},'Copy' => {'name' => 'Copy','text' => 'The XSUB-writer\'s interface to the C C |
||||||
| 41 | source, C |
||||||
| 42 | C |
||||||
| 43 | |||||||
| 44 | void Copy(void* src, void* dest, int nitems, type)'},'CopyD' => {'name' => 'CopyD','text' => 'Like C |
||||||
| 45 | for encouraging compilers to tail-call | ||||||
| 46 | optimise. | ||||||
| 47 | |||||||
| 48 | void * CopyD(void* src, void* dest, int nitems, type)'},'CvPADLIST' => {'name' => 'CvPADLIST','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 49 | removed without notice. | ||||||
| 50 | |||||||
| 51 | |||||||
| 52 | CV\'s can have CvPADLIST(cv) set to point to a PADLIST. This is the CV\'s | ||||||
| 53 | scratchpad, which stores lexical variables and opcode temporary and | ||||||
| 54 | per-thread values. | ||||||
| 55 | |||||||
| 56 | For these purposes "formats" are a kind-of CV; eval""s are too (except they\'re | ||||||
| 57 | not callable at will and are always thrown away after the eval"" is done | ||||||
| 58 | executing). Require\'d files are simply evals without any outer lexical | ||||||
| 59 | scope. | ||||||
| 60 | |||||||
| 61 | XSUBs don\'t have CvPADLIST set - dXSTARG fetches values from PL_curpad, | ||||||
| 62 | but that is really the callers pad (a slot of which is allocated by | ||||||
| 63 | every entersub). | ||||||
| 64 | |||||||
| 65 | The PADLIST has a C array where pads are stored. | ||||||
| 66 | |||||||
| 67 | The 0th entry of the PADLIST is a PADNAMELIST (which is actually just an | ||||||
| 68 | AV, but that may change) which represents the "names" or rather | ||||||
| 69 | the "static type information" for lexicals. The individual elements of a | ||||||
| 70 | PADNAMELIST are PADNAMEs (just SVs; but, again, that may change). Future | ||||||
| 71 | refactorings might stop the PADNAMELIST from being stored in the PADLIST\'s | ||||||
| 72 | array, so don\'t rely on it. See L. | ||||||
| 73 | |||||||
| 74 | The CvDEPTH\'th entry of a PADLIST is a PAD (an AV) which is the stack frame | ||||||
| 75 | at that depth of recursion into the CV. The 0th slot of a frame AV is an | ||||||
| 76 | AV which is @_. Other entries are storage for variables and op targets. | ||||||
| 77 | |||||||
| 78 | Iterating over the PADNAMELIST iterates over all possible pad | ||||||
| 79 | items. Pad slots for targets (SVs_PADTMP) | ||||||
| 80 | and GVs end up having &PL_sv_undef | ||||||
| 81 | "names", while slots for constants have &PL_sv_no "names" (see | ||||||
| 82 | pad_alloc()). That &PL_sv_no is used is an implementation detail subject | ||||||
| 83 | to change. To test for it, use C |
||||||
| 84 | |||||||
| 85 | Only my/our variable (SvPADMY/PADNAME_isOUR) slots get valid names. | ||||||
| 86 | The rest are op targets/GVs/constants which are statically allocated | ||||||
| 87 | or resolved at compile time. These don\'t have names by which they | ||||||
| 88 | can be looked up from Perl code at run time through eval"" the way | ||||||
| 89 | my/our variables can be. Since they can\'t be looked up by "name" | ||||||
| 90 | but only by their index allocated at compile time (which is usually | ||||||
| 91 | in PL_op->op_targ), wasting a name SV for them doesn\'t make sense. | ||||||
| 92 | |||||||
| 93 | The SVs in the names AV have their PV being the name of the variable. | ||||||
| 94 | xlow+1..xhigh inclusive in the NV union is a range of cop_seq numbers for | ||||||
| 95 | which the name is valid (accessed through the macros COP_SEQ_RANGE_LOW and | ||||||
| 96 | _HIGH). During compilation, these fields may hold the special value | ||||||
| 97 | PERL_PADSEQ_INTRO to indicate various stages: | ||||||
| 98 | |||||||
| 99 | COP_SEQ_RANGE_LOW _HIGH | ||||||
| 100 | ----------------- ----- | ||||||
| 101 | PERL_PADSEQ_INTRO 0 variable not yet introduced: { my ($x | ||||||
| 102 | valid-seq# PERL_PADSEQ_INTRO variable in scope: { my ($x) | ||||||
| 103 | valid-seq# valid-seq# compilation of scope complete: { my ($x) } | ||||||
| 104 | |||||||
| 105 | For typed lexicals name SV is SVt_PVMG and SvSTASH | ||||||
| 106 | points at the type. For C |
||||||
| 107 | SvOURSTASH slot pointing at the stash of the associated global (so that | ||||||
| 108 | duplicate C |
||||||
| 109 | sometimes hijacked to store the generation number during compilation. | ||||||
| 110 | |||||||
| 111 | If PADNAME_OUTER (SvFAKE) is set on the | ||||||
| 112 | name SV, then that slot in the frame AV is | ||||||
| 113 | a REFCNT\'ed reference to a lexical from "outside". In this case, | ||||||
| 114 | the name SV does not use xlow and xhigh to store a cop_seq range, since it is | ||||||
| 115 | in scope throughout. Instead xhigh stores some flags containing info about | ||||||
| 116 | the real lexical (is it declared in an anon, and is it capable of being | ||||||
| 117 | instantiated multiple times?), and for fake ANONs, xlow contains the index | ||||||
| 118 | within the parent\'s pad where the lexical\'s value is stored, to make | ||||||
| 119 | cloning quicker. | ||||||
| 120 | |||||||
| 121 | If the \'name\' is \'&\' the corresponding entry in the PAD | ||||||
| 122 | is a CV representing a possible closure. | ||||||
| 123 | (PADNAME_OUTER and name of \'&\' is not a | ||||||
| 124 | meaningful combination currently but could | ||||||
| 125 | become so if C |
||||||
| 126 | |||||||
| 127 | Note that formats are treated as anon subs, and are cloned each time | ||||||
| 128 | write is called (if necessary). | ||||||
| 129 | |||||||
| 130 | The flag SVs_PADSTALE is cleared on lexicals each time the my() is executed, | ||||||
| 131 | and set on scope exit. This allows the | ||||||
| 132 | \'Variable $x is not available\' warning | ||||||
| 133 | to be generated in evals, such as | ||||||
| 134 | |||||||
| 135 | { my $x = 1; sub f { eval \'$x\'} } f(); | ||||||
| 136 | |||||||
| 137 | For state vars, SVs_PADSTALE is overloaded to mean \'not yet initialised\'. | ||||||
| 138 | |||||||
| 139 | PADLIST * CvPADLIST(CV *cv)'},'CvSTASH' => {'name' => 'CvSTASH','text' => 'Returns the stash of the CV. A stash is the symbol table hash, containing | ||||||
| 140 | the package-scoped variables in the package where the subroutine was defined. | ||||||
| 141 | For more information, see L |
||||||
| 142 | |||||||
| 143 | This also has a special use with XS AUTOLOAD subs. | ||||||
| 144 | See L |
||||||
| 145 | |||||||
| 146 | HV* CvSTASH(CV* cv)'},'ENTER' => {'name' => 'ENTER','text' => 'Opening bracket on a callback. See C |
||||||
| 147 | |||||||
| 148 | ENTER;'},'EXTEND' => {'name' => 'EXTEND','text' => 'Used to extend the argument stack for an XSUB\'s return values. Once | ||||||
| 149 | used, guarantees that there is room for at least C |
||||||
| 150 | onto the stack. | ||||||
| 151 | |||||||
| 152 | void EXTEND(SP, SSize_t nitems)'},'FREETMPS' => {'name' => 'FREETMPS','text' => 'Closing bracket for temporaries on a callback. See C |
||||||
| 153 | L |
||||||
| 154 | |||||||
| 155 | FREETMPS;'},'GIMME' => {'name' => 'GIMME','text' => 'A backward-compatible version of C |
||||||
| 156 | C |
||||||
| 157 | Deprecated. Use C |
||||||
| 158 | |||||||
| 159 | U32 GIMME'},'GIMME_V' => {'name' => 'GIMME_V','text' => 'The XSUB-writer\'s equivalent to Perl\'s C |
||||||
| 160 | C |
||||||
| 161 | respectively. See L |
||||||
| 162 | |||||||
| 163 | U32 GIMME_V'},'G_ARRAY' => {'name' => 'G_ARRAY','text' => 'Used to indicate list context. See C |
||||||
| 164 | L |
||||||
| 165 | L |
||||||
| 166 | L |
||||||
| 167 | L |
||||||
| 168 | L |
||||||
| 169 | |||||||
| 170 | AV* GvAV(GV* gv)'},'GvCV' => {'name' => 'GvCV','text' => 'Return the CV from the GV. | ||||||
| 171 | |||||||
| 172 | CV* GvCV(GV* gv)'},'GvHV' => {'name' => 'GvHV','text' => 'Return the HV from the GV. | ||||||
| 173 | |||||||
| 174 | HV* GvHV(GV* gv)'},'GvSV' => {'name' => 'GvSV','text' => 'Return the SV from the GV. | ||||||
| 175 | |||||||
| 176 | SV* GvSV(GV* gv)'},'Gv_AMupdate' => {'name' => 'Gv_AMupdate','text' => ''},'HEf_SVKEY' => {'name' => 'HEf_SVKEY','text' => 'This flag, used in the length slot of hash entries and magic structures, | ||||||
| 177 | specifies the structure contains an C |
||||||
| 178 | is to be expected. (For information only--not to be used).'},'HeHASH' => {'name' => 'HeHASH','text' => 'Returns the computed hash stored in the hash entry. | ||||||
| 179 | |||||||
| 180 | U32 HeHASH(HE* he)'},'HeKEY' => {'name' => 'HeKEY','text' => 'Returns the actual pointer stored in the key slot of the hash entry. The | ||||||
| 181 | pointer may be either C |
||||||
| 182 | C |
||||||
| 183 | usually preferable for finding the value of a key. | ||||||
| 184 | |||||||
| 185 | void* HeKEY(HE* he)'},'HeKLEN' => {'name' => 'HeKLEN','text' => 'If this is negative, and amounts to C |
||||||
| 186 | holds an C |
||||||
| 187 | be assigned to. The C |
||||||
| 188 | lengths. | ||||||
| 189 | |||||||
| 190 | STRLEN HeKLEN(HE* he)'},'HePV' => {'name' => 'HePV','text' => 'Returns the key slot of the hash entry as a C |
||||||
| 191 | necessary dereferencing of possibly C |
||||||
| 192 | is placed in C |
||||||
| 193 | not care about what the length of the key is, you may use the global | ||||||
| 194 | variable C |
||||||
| 195 | variable. Remember though, that hash keys in perl are free to contain | ||||||
| 196 | embedded nulls, so using C |
||||||
| 197 | the length of hash keys. This is very similar to the C |
||||||
| 198 | described elsewhere in this document. See also C |
||||||
| 199 | |||||||
| 200 | If you are using C |
||||||
| 201 | new SV, you should consider using C |
||||||
| 202 | efficient. | ||||||
| 203 | |||||||
| 204 | char* HePV(HE* he, STRLEN len)'},'HeSVKEY' => {'name' => 'HeSVKEY','text' => 'Returns the key as an C |
||||||
| 205 | contain an C |
||||||
| 206 | |||||||
| 207 | SV* HeSVKEY(HE* he)'},'HeSVKEY_force' => {'name' => 'HeSVKEY_force','text' => 'Returns the key as an C |
||||||
| 208 | C |
||||||
| 209 | |||||||
| 210 | SV* HeSVKEY_force(HE* he)'},'HeSVKEY_set' => {'name' => 'HeSVKEY_set','text' => 'Sets the key to a given C |
||||||
| 211 | indicate the presence of an C |
||||||
| 212 | C |
||||||
| 213 | |||||||
| 214 | SV* HeSVKEY_set(HE* he, SV* sv)'},'HeUTF8' => {'name' => 'HeUTF8','text' => 'Returns whether the C |
||||||
| 215 | doing any necessary dereferencing of possibly C |
||||||
| 216 | will be 0 or non-0, not necessarily 1 (or even a value with any low bits set), | ||||||
| 217 | so B |
||||||
| 218 | typedef for C |
||||||
| 219 | |||||||
| 220 | U32 HeUTF8(HE* he)'},'HeVAL' => {'name' => 'HeVAL','text' => 'Returns the value slot (type C |
||||||
| 221 | stored in the hash entry. Can be assigned | ||||||
| 222 | to. | ||||||
| 223 | |||||||
| 224 | SV *foo= HeVAL(hv); | ||||||
| 225 | HeVAL(hv)= sv; | ||||||
| 226 | |||||||
| 227 | |||||||
| 228 | SV* HeVAL(HE* he)'},'HvENAME' => {'name' => 'HvENAME','text' => 'Returns the effective name of a stash, or NULL if there is none. The | ||||||
| 229 | effective name represents a location in the symbol table where this stash | ||||||
| 230 | resides. It is updated automatically when packages are aliased or deleted. | ||||||
| 231 | A stash that is no longer in the symbol table has no effective name. This | ||||||
| 232 | name is preferable to C |
||||||
| 233 | caches. | ||||||
| 234 | |||||||
| 235 | char* HvENAME(HV* stash)'},'HvENAMELEN' => {'name' => 'HvENAMELEN','text' => 'Returns the length of the stash\'s effective name. | ||||||
| 236 | |||||||
| 237 | STRLEN HvENAMELEN(HV *stash)'},'HvENAMEUTF8' => {'name' => 'HvENAMEUTF8','text' => 'Returns true if the effective name is in UTF8 encoding. | ||||||
| 238 | |||||||
| 239 | unsigned char HvENAMEUTF8(HV *stash)'},'HvNAME' => {'name' => 'HvNAME','text' => 'Returns the package name of a stash, or NULL if C |
||||||
| 240 | See C |
||||||
| 241 | |||||||
| 242 | char* HvNAME(HV* stash)'},'HvNAMELEN' => {'name' => 'HvNAMELEN','text' => 'Returns the length of the stash\'s name. | ||||||
| 243 | |||||||
| 244 | STRLEN HvNAMELEN(HV *stash)'},'HvNAMEUTF8' => {'name' => 'HvNAMEUTF8','text' => 'Returns true if the name is in UTF8 encoding. | ||||||
| 245 | |||||||
| 246 | unsigned char HvNAMEUTF8(HV *stash)'},'LEAVE' => {'name' => 'LEAVE','text' => 'Closing bracket on a callback. See C |
||||||
| 247 | |||||||
| 248 | LEAVE;'},'LINKLIST' => {'name' => 'LINKLIST','text' => 'Given the root of an optree, link the tree in execution order using the | ||||||
| 249 | C |
||||||
| 250 | already been done, it will not be redone, and C<< o->op_next >> will be | ||||||
| 251 | returned. If C<< o->op_next >> is not already set, I |
||||||
| 252 | least an C |
||||||
| 253 | |||||||
| 254 | OP* LINKLIST(OP *o)'},'MARK' => {'name' => 'MARK','text' => 'Stack marker variable for the XSUB. See C |
||||||
| 255 | |||||||
| 256 | MULTICALL;'},'Move' => {'name' => 'Move','text' => 'The XSUB-writer\'s interface to the C C |
||||||
| 257 | source, C |
||||||
| 258 | C |
||||||
| 259 | |||||||
| 260 | void Move(void* src, void* dest, int nitems, type)'},'MoveD' => {'name' => 'MoveD','text' => 'Like C |
||||||
| 261 | for encouraging compilers to tail-call | ||||||
| 262 | optimise. | ||||||
| 263 | |||||||
| 264 | void * MoveD(void* src, void* dest, int nitems, type)'},'Newx' => {'name' => 'Newx','text' => 'The XSUB-writer\'s interface to the C C |
||||||
| 265 | |||||||
| 266 | Memory obtained by this should B |
||||||
| 267 | |||||||
| 268 | In 5.9.3, Newx() and friends replace the older New() API, and drops | ||||||
| 269 | the first parameter, I |
||||||
| 270 | themselves. This aid has been superseded by a new build option, | ||||||
| 271 | PERL_MEM_LOG (see L |
||||||
| 272 | there for use in XS modules supporting older perls. | ||||||
| 273 | |||||||
| 274 | void Newx(void* ptr, int nitems, type)'},'Newxc' => {'name' => 'Newxc','text' => 'The XSUB-writer\'s interface to the C C |
||||||
| 275 | cast. See also C |
||||||
| 276 | |||||||
| 277 | Memory obtained by this should B |
||||||
| 278 | |||||||
| 279 | void Newxc(void* ptr, int nitems, type, cast)'},'Newxz' => {'name' => 'Newxz','text' => 'The XSUB-writer\'s interface to the C C |
||||||
| 280 | memory is zeroed with C |
||||||
| 281 | |||||||
| 282 | Memory obtained by this should B |
||||||
| 283 | |||||||
| 284 | void Newxz(void* ptr, int nitems, type)'},'Nullav' => {'name' => 'Nullav','text' => 'Null AV pointer. | ||||||
| 285 | |||||||
| 286 | (deprecated - use C<(AV *)NULL> instead)'},'Nullch' => {'name' => 'Nullch','text' => 'Null character pointer. (No longer available when C |
||||||
| 287 | defined.)'},'Nullcv' => {'name' => 'Nullcv','text' => 'Null CV pointer. | ||||||
| 288 | |||||||
| 289 | (deprecated - use C<(CV *)NULL> instead)'},'Nullhv' => {'name' => 'Nullhv','text' => 'Null HV pointer. | ||||||
| 290 | |||||||
| 291 | (deprecated - use C<(HV *)NULL> instead)'},'Nullsv' => {'name' => 'Nullsv','text' => 'Null SV pointer. (No longer available when C |
||||||
| 292 | structures it uses. For core ops this currently gets the information out | ||||||
| 293 | of PL_opargs, which does not always accurately reflect the type used. | ||||||
| 294 | For custom ops the type is returned from the registration, and it is up | ||||||
| 295 | to the registree to ensure it is accurate. The value returned will be | ||||||
| 296 | one of the OA_* constants from op.h. | ||||||
| 297 | |||||||
| 298 | U32 OP_CLASS(OP *o)'},'OP_DESC' => {'name' => 'OP_DESC','text' => 'Return a short description of the provided OP. | ||||||
| 299 | |||||||
| 300 | const char * OP_DESC(OP *o)'},'OP_NAME' => {'name' => 'OP_NAME','text' => 'Return the name of the provided OP. For core ops this looks up the name | ||||||
| 301 | from the op_type; for custom ops from the op_ppaddr. | ||||||
| 302 | |||||||
| 303 | const char * OP_NAME(OP *o)'},'OP_TYPE_IS' => {'name' => 'OP_TYPE_IS','text' => 'Returns true if the given OP is not a NULL pointer | ||||||
| 304 | and if it is of the given type. | ||||||
| 305 | |||||||
| 306 | The negation of this macro, C |
||||||
| 307 | as well as C |
||||||
| 308 | the NULL pointer check. | ||||||
| 309 | |||||||
| 310 | bool OP_TYPE_IS(OP *o, Optype type)'},'OP_TYPE_IS_OR_WAS' => {'name' => 'OP_TYPE_IS_OR_WAS','text' => 'Returns true if the given OP is not a NULL pointer and | ||||||
| 311 | if it is of the given type or used to be before being | ||||||
| 312 | replaced by an OP of type OP_NULL. | ||||||
| 313 | |||||||
| 314 | The negation of this macro, C |
||||||
| 315 | is also available as well as C |
||||||
| 316 | and C |
||||||
| 317 | the NULL pointer check. | ||||||
| 318 | |||||||
| 319 | bool OP_TYPE_IS_OR_WAS(OP *o, Optype type)'},'ORIGMARK' => {'name' => 'ORIGMARK','text' => 'The original stack mark for the XSUB. See C |
||||||
| 320 | run Perl interpreters. This should be called only once, before creating | ||||||
| 321 | any Perl interpreters. | ||||||
| 322 | |||||||
| 323 | void PERL_SYS_INIT(int *argc, char*** argv)'},'PERL_SYS_INIT3' => {'name' => 'PERL_SYS_INIT3','text' => 'Provides system-specific tune up of the C runtime environment necessary to | ||||||
| 324 | run Perl interpreters. This should be called only once, before creating | ||||||
| 325 | any Perl interpreters. | ||||||
| 326 | |||||||
| 327 | void PERL_SYS_INIT3(int *argc, char*** argv, | ||||||
| 328 | char*** env)'},'PERL_SYS_TERM' => {'name' => 'PERL_SYS_TERM','text' => 'Provides system-specific clean up of the C runtime environment after | ||||||
| 329 | running Perl interpreters. This should be called only once, after | ||||||
| 330 | freeing any remaining Perl interpreters. | ||||||
| 331 | |||||||
| 332 | void PERL_SYS_TERM()'},'PL_check' => {'name' => 'PL_check','text' => 'Array, indexed by opcode, of functions that will be called for the "check" | ||||||
| 333 | phase of optree building during compilation of Perl code. For most (but | ||||||
| 334 | not all) types of op, once the op has been initially built and populated | ||||||
| 335 | with child ops it will be filtered through the check function referenced | ||||||
| 336 | by the appropriate element of this array. The new op is passed in as the | ||||||
| 337 | sole argument to the check function, and the check function returns the | ||||||
| 338 | completed op. The check function may (as the name suggests) check the op | ||||||
| 339 | for validity and signal errors. It may also initialise or modify parts of | ||||||
| 340 | the ops, or perform more radical surgery such as adding or removing child | ||||||
| 341 | ops, or even throw the op away and return a different op in its place. | ||||||
| 342 | |||||||
| 343 | This array of function pointers is a convenient place to hook into the | ||||||
| 344 | compilation process. An XS module can put its own custom check function | ||||||
| 345 | in place of any of the standard ones, to influence the compilation of a | ||||||
| 346 | particular type of op. However, a custom check function must never fully | ||||||
| 347 | replace a standard check function (or even a custom check function from | ||||||
| 348 | another module). A module modifying checking must instead B |
||||||
| 349 | preexisting check function. A custom check function must be selective | ||||||
| 350 | about when to apply its custom behaviour. In the usual case where | ||||||
| 351 | it decides not to do anything special with an op, it must chain the | ||||||
| 352 | preexisting op function. Check functions are thus linked in a chain, | ||||||
| 353 | with the core\'s base checker at the end. | ||||||
| 354 | |||||||
| 355 | For thread safety, modules should not write directly to this array. | ||||||
| 356 | Instead, use the function L.'},'PL_comppad' => {'name' => 'PL_comppad','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 357 | removed without notice. | ||||||
| 358 | |||||||
| 359 | |||||||
| 360 | During compilation, this points to the array containing the values | ||||||
| 361 | part of the pad for the currently-compiling code. (At runtime a CV may | ||||||
| 362 | have many such value arrays; at compile time just one is constructed.) | ||||||
| 363 | At runtime, this points to the array containing the currently-relevant | ||||||
| 364 | values for the pad for the currently-executing code.'},'PL_comppad_name' => {'name' => 'PL_comppad_name','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 365 | removed without notice. | ||||||
| 366 | |||||||
| 367 | |||||||
| 368 | During compilation, this points to the array containing the names part | ||||||
| 369 | of the pad for the currently-compiling code.'},'PL_curpad' => {'name' => 'PL_curpad','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 370 | removed without notice. | ||||||
| 371 | |||||||
| 372 | |||||||
| 373 | Points directly to the body of the L array. | ||||||
| 374 | (I.e., this is C |
||||||
| 375 | removed without notice. | ||||||
| 376 | |||||||
| 377 | |||||||
| 378 | Function pointer, pointing at a function used to handle extended keywords. | ||||||
| 379 | The function should be declared as | ||||||
| 380 | |||||||
| 381 | int keyword_plugin_function(pTHX_ | ||||||
| 382 | char *keyword_ptr, STRLEN keyword_len, | ||||||
| 383 | OP **op_ptr) | ||||||
| 384 | |||||||
| 385 | The function is called from the tokeniser, whenever a possible keyword | ||||||
| 386 | is seen. C |
||||||
| 387 | buffer, and C |
||||||
| 388 | The function is expected to examine the word, and possibly other state | ||||||
| 389 | such as L<%^H|perlvar/%^H>, to decide whether it wants to handle it | ||||||
| 390 | as an extended keyword. If it does not, the function should return | ||||||
| 391 | C |
||||||
| 392 | |||||||
| 393 | If the function wants to handle the keyword, it first must | ||||||
| 394 | parse anything following the keyword that is part of the syntax | ||||||
| 395 | introduced by the keyword. See L for details. | ||||||
| 396 | |||||||
| 397 | When a keyword is being handled, the plugin function must build | ||||||
| 398 | a tree of C |
||||||
| 399 | The root of the tree must be stored in C<*op_ptr>. The function then | ||||||
| 400 | returns a constant indicating the syntactic role of the construct that | ||||||
| 401 | it has parsed: C |
||||||
| 402 | C |
||||||
| 403 | construct cannot be used inside an expression (except via C |
||||||
| 404 | and similar), and an expression is not a complete statement (it requires | ||||||
| 405 | at least a terminating semicolon). | ||||||
| 406 | |||||||
| 407 | When a keyword is handled, the plugin function may also have | ||||||
| 408 | (compile-time) side effects. It may modify C<%^H>, define functions, and | ||||||
| 409 | so on. Typically, if side effects are the main purpose of a handler, | ||||||
| 410 | it does not wish to generate any ops to be included in the normal | ||||||
| 411 | compilation. In this case it is still required to supply an op tree, | ||||||
| 412 | but it suffices to generate a single null op. | ||||||
| 413 | |||||||
| 414 | That\'s how the C<*PL_keyword_plugin> function needs to behave overall. | ||||||
| 415 | Conventionally, however, one does not completely replace the existing | ||||||
| 416 | handler function. Instead, take a copy of C |
||||||
| 417 | assigning your own function pointer to it. Your handler function should | ||||||
| 418 | look for keywords that it is interested in and handle those. Where it | ||||||
| 419 | is not interested, it should call the saved plugin function, passing on | ||||||
| 420 | the arguments it received. Thus C |
||||||
| 421 | at a chain of handler functions, all of which have an opportunity to | ||||||
| 422 | handle keywords, and only the last function in the chain (built into | ||||||
| 423 | the Perl core) will normally return C |
||||||
| 424 | extensions that need to keep information on a per-interpreter basis. | ||||||
| 425 | In a pinch, it can also be used as a symbol table for extensions | ||||||
| 426 | to share data among each other. It is a good idea to use keys | ||||||
| 427 | prefixed by the package name of the extension that owns the data. | ||||||
| 428 | |||||||
| 429 | HV* PL_modglobal'},'PL_na' => {'name' => 'PL_na','text' => 'A convenience variable which is typically used with C |
||||||
| 430 | doesn\'t care about the length of the string. It is usually more efficient | ||||||
| 431 | to either declare a local variable and use that instead or to use the | ||||||
| 432 | C |
||||||
| 433 | |||||||
| 434 | STRLEN PL_na'},'PL_opfreehook' => {'name' => 'PL_opfreehook','text' => 'When non-C |
||||||
| 435 | This allows extensions to free any extra attribute they have locally attached to an OP. | ||||||
| 436 | It is also assured to first fire for the parent OP and then for its kids. | ||||||
| 437 | |||||||
| 438 | When you replace this variable, it is considered a good practice to store the possibly previously installed hook and that you recall it inside your own. | ||||||
| 439 | |||||||
| 440 | Perl_ophook_t PL_opfreehook'},'PL_parser' => {'name' => 'PL_parser','text' => 'Pointer to a structure encapsulating the state of the parsing operation | ||||||
| 441 | currently in progress. The pointer can be locally changed to perform | ||||||
| 442 | a nested parse without interfering with the state of an outer parse. | ||||||
| 443 | Individual members of C |
||||||
| 444 | removed without notice. | ||||||
| 445 | |||||||
| 446 | |||||||
| 447 | Direct pointer to the end of the chunk of text currently being lexed, the | ||||||
| 448 | end of the lexer buffer. This is equal to C |
||||||
| 449 | + SvCUR(PL_parser-E |
||||||
| 450 | always located at the end of the buffer, and does not count as part of | ||||||
| 451 | the buffer\'s contents.'},'PL_parser-E |
||||||
| 452 | removed without notice. | ||||||
| 453 | |||||||
| 454 | |||||||
| 455 | Points to the current position of lexing inside the lexer buffer. | ||||||
| 456 | Characters around this point may be freely examined, within | ||||||
| 457 | the range delimited by C |
||||||
| 458 | Lbufend>. The octets of the buffer may be intended to be | ||||||
| 459 | interpreted as either UTF-8 or Latin-1, as indicated by L. | ||||||
| 460 | |||||||
| 461 | Lexing code (whether in the Perl core or not) moves this pointer past | ||||||
| 462 | the characters that it consumes. It is also expected to perform some | ||||||
| 463 | bookkeeping whenever a newline character is consumed. This movement | ||||||
| 464 | can be more conveniently performed by the function L, | ||||||
| 465 | which handles newlines appropriately. | ||||||
| 466 | |||||||
| 467 | Interpretation of the buffer\'s octets can be abstracted out by | ||||||
| 468 | using the slightly higher-level functions L and | ||||||
| 469 | L.'},'PL_parser-E |
||||||
| 470 | removed without notice. | ||||||
| 471 | |||||||
| 472 | |||||||
| 473 | Points to the start of the current line inside the lexer buffer. | ||||||
| 474 | This is useful for indicating at which column an error occurred, and | ||||||
| 475 | not much else. This must be updated by any lexing code that consumes | ||||||
| 476 | a newline; the function L handles this detail.'},'PL_parser-E |
||||||
| 477 | removed without notice. | ||||||
| 478 | |||||||
| 479 | |||||||
| 480 | Buffer scalar containing the chunk currently under consideration of the | ||||||
| 481 | text currently being lexed. This is always a plain string scalar (for | ||||||
| 482 | which C |
||||||
| 483 | normal scalar means; instead refer to the buffer directly by the pointer | ||||||
| 484 | variables described below. | ||||||
| 485 | |||||||
| 486 | The lexer maintains various C |
||||||
| 487 | C |
||||||
| 488 | reallocated, all of these pointers must be updated. Don\'t attempt to | ||||||
| 489 | do this manually, but rather use L if you need to | ||||||
| 490 | reallocate the buffer. | ||||||
| 491 | |||||||
| 492 | The content of the text chunk in the buffer is commonly exactly one | ||||||
| 493 | complete line of input, up to and including a newline terminator, | ||||||
| 494 | but there are situations where it is otherwise. The octets of the | ||||||
| 495 | buffer may be intended to be interpreted as either UTF-8 or Latin-1. | ||||||
| 496 | The function L tells you which. Do not use the C |
||||||
| 497 | flag on this scalar, which may disagree with it. | ||||||
| 498 | |||||||
| 499 | For direct examination of the buffer, the variable | ||||||
| 500 | Lbufend> points to the end of the buffer. The current | ||||||
| 501 | lexing position is pointed to by Lbufptr>. Direct use | ||||||
| 502 | of these pointers is usually preferable to examination of the scalar | ||||||
| 503 | through normal scalar means.'},'PL_peepp' => {'name' => 'PL_peepp','text' => 'Pointer to the per-subroutine peephole optimiser. This is a function | ||||||
| 504 | that gets called at the end of compilation of a Perl subroutine (or | ||||||
| 505 | equivalently independent piece of Perl code) to perform fixups of | ||||||
| 506 | some ops and to perform small-scale optimisations. The function is | ||||||
| 507 | called once for each subroutine that is compiled, and is passed, as sole | ||||||
| 508 | parameter, a pointer to the op that is the entry point to the subroutine. | ||||||
| 509 | It modifies the op tree in place. | ||||||
| 510 | |||||||
| 511 | The peephole optimiser should never be completely replaced. Rather, | ||||||
| 512 | add code to it by wrapping the existing optimiser. The basic way to do | ||||||
| 513 | this can be seen in L |
||||||
| 514 | If the new code wishes to operate on ops throughout the subroutine\'s | ||||||
| 515 | structure, rather than just at the top level, it is likely to be more | ||||||
| 516 | convenient to wrap the L hook. | ||||||
| 517 | |||||||
| 518 | peep_t PL_peepp'},'PL_rpeepp' => {'name' => 'PL_rpeepp','text' => 'Pointer to the recursive peephole optimiser. This is a function | ||||||
| 519 | that gets called at the end of compilation of a Perl subroutine (or | ||||||
| 520 | equivalently independent piece of Perl code) to perform fixups of some | ||||||
| 521 | ops and to perform small-scale optimisations. The function is called | ||||||
| 522 | once for each chain of ops linked through their C |
||||||
| 523 | it is recursively called to handle each side chain. It is passed, as | ||||||
| 524 | sole parameter, a pointer to the op that is at the head of the chain. | ||||||
| 525 | It modifies the op tree in place. | ||||||
| 526 | |||||||
| 527 | The peephole optimiser should never be completely replaced. Rather, | ||||||
| 528 | add code to it by wrapping the existing optimiser. The basic way to do | ||||||
| 529 | this can be seen in L |
||||||
| 530 | If the new code wishes to operate only on ops at a subroutine\'s top level, | ||||||
| 531 | rather than throughout the structure, it is likely to be more convenient | ||||||
| 532 | to wrap the L hook. | ||||||
| 533 | |||||||
| 534 | peep_t PL_rpeepp'},'PL_sv_no' => {'name' => 'PL_sv_no','text' => 'This is the C |
||||||
| 535 | C<&PL_sv_no>. | ||||||
| 536 | |||||||
| 537 | SV PL_sv_no'},'PL_sv_undef' => {'name' => 'PL_sv_undef','text' => 'This is the C |
||||||
| 538 | |||||||
| 539 | SV PL_sv_undef'},'PL_sv_yes' => {'name' => 'PL_sv_yes','text' => 'This is the C |
||||||
| 540 | C<&PL_sv_yes>. | ||||||
| 541 | |||||||
| 542 | SV PL_sv_yes'},'POP_MULTICALL' => {'name' => 'POP_MULTICALL','text' => 'Closing bracket for a lightweight callback. | ||||||
| 543 | See L |
||||||
| 544 | |||||||
| 545 | POP_MULTICALL;'},'POPi' => {'name' => 'POPi','text' => 'Pops an integer off the stack. | ||||||
| 546 | |||||||
| 547 | IV POPi'},'POPl' => {'name' => 'POPl','text' => 'Pops a long off the stack. | ||||||
| 548 | |||||||
| 549 | long POPl'},'POPn' => {'name' => 'POPn','text' => 'Pops a double off the stack. | ||||||
| 550 | |||||||
| 551 | NV POPn'},'POPp' => {'name' => 'POPp','text' => 'Pops a string off the stack. | ||||||
| 552 | |||||||
| 553 | char* POPp'},'POPpbytex' => {'name' => 'POPpbytex','text' => 'Pops a string off the stack which must consist of bytes i.e. characters < 256. | ||||||
| 554 | |||||||
| 555 | char* POPpbytex'},'POPpx' => {'name' => 'POPpx','text' => 'Pops a string off the stack. Identical to POPp. There are two names for | ||||||
| 556 | historical reasons. | ||||||
| 557 | |||||||
| 558 | char* POPpx'},'POPs' => {'name' => 'POPs','text' => 'Pops an SV off the stack. | ||||||
| 559 | |||||||
| 560 | SV* POPs'},'PUSHMARK' => {'name' => 'PUSHMARK','text' => 'Opening bracket for arguments on a callback. See C |
||||||
| 561 | L |
||||||
| 562 | |||||||
| 563 | void PUSHMARK(SP)'},'PUSH_MULTICALL' => {'name' => 'PUSH_MULTICALL','text' => 'Opening bracket for a lightweight callback. | ||||||
| 564 | See L |
||||||
| 565 | |||||||
| 566 | PUSH_MULTICALL;'},'PUSHi' => {'name' => 'PUSHi','text' => 'Push an integer onto the stack. The stack must have room for this element. | ||||||
| 567 | Handles \'set\' magic. Uses C |
||||||
| 568 | called to declare it. Do not call multiple C |
||||||
| 569 | return lists from XSUB\'s - see C |
||||||
| 570 | C |
||||||
| 571 | |||||||
| 572 | void PUSHi(IV iv)'},'PUSHmortal' => {'name' => 'PUSHmortal','text' => 'Push a new mortal SV onto the stack. The stack must have room for this | ||||||
| 573 | element. Does not use C |
||||||
| 574 | |||||||
| 575 | void PUSHmortal()'},'PUSHn' => {'name' => 'PUSHn','text' => 'Push a double onto the stack. The stack must have room for this element. | ||||||
| 576 | Handles \'set\' magic. Uses C |
||||||
| 577 | called to declare it. Do not call multiple C |
||||||
| 578 | return lists from XSUB\'s - see C |
||||||
| 579 | C |
||||||
| 580 | |||||||
| 581 | void PUSHn(NV nv)'},'PUSHp' => {'name' => 'PUSHp','text' => 'Push a string onto the stack. The stack must have room for this element. | ||||||
| 582 | The C |
||||||
| 583 | C |
||||||
| 584 | call multiple C |
||||||
| 585 | C |
||||||
| 586 | |||||||
| 587 | void PUSHp(char* str, STRLEN len)'},'PUSHs' => {'name' => 'PUSHs','text' => 'Push an SV onto the stack. The stack must have room for this element. | ||||||
| 588 | Does not handle \'set\' magic. Does not use C |
||||||
| 589 | C |
||||||
| 590 | |||||||
| 591 | void PUSHs(SV* sv)'},'PUSHu' => {'name' => 'PUSHu','text' => 'Push an unsigned integer onto the stack. The stack must have room for this | ||||||
| 592 | element. Handles \'set\' magic. Uses C |
||||||
| 593 | should be called to declare it. Do not call multiple C |
||||||
| 594 | macros to return lists from XSUB\'s - see C |
||||||
| 595 | C |
||||||
| 596 | |||||||
| 597 | void PUSHu(UV uv)'},'PUTBACK' => {'name' => 'PUTBACK','text' => 'Closing bracket for XSUB arguments. This is usually handled by C |
||||||
| 598 | See C |
||||||
| 599 | |||||||
| 600 | PUTBACK;'},'PadARRAY' => {'name' => 'PadARRAY','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 601 | removed without notice. | ||||||
| 602 | |||||||
| 603 | |||||||
| 604 | The C array of pad entries. | ||||||
| 605 | |||||||
| 606 | SV ** PadARRAY(PAD pad)'},'PadMAX' => {'name' => 'PadMAX','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 607 | removed without notice. | ||||||
| 608 | |||||||
| 609 | |||||||
| 610 | The index of the last pad entry. | ||||||
| 611 | |||||||
| 612 | SSize_t PadMAX(PAD pad)'},'PadlistARRAY' => {'name' => 'PadlistARRAY','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 613 | removed without notice. | ||||||
| 614 | |||||||
| 615 | |||||||
| 616 | The C array of a padlist, containing the pads. Only subscript it with | ||||||
| 617 | numbers >= 1, as the 0th entry is not guaranteed to remain usable. | ||||||
| 618 | |||||||
| 619 | PAD ** PadlistARRAY(PADLIST padlist)'},'PadlistMAX' => {'name' => 'PadlistMAX','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 620 | removed without notice. | ||||||
| 621 | |||||||
| 622 | |||||||
| 623 | The index of the last allocated space in the padlist. Note that the last | ||||||
| 624 | pad may be in an earlier slot. Any entries following it will be NULL in | ||||||
| 625 | that case. | ||||||
| 626 | |||||||
| 627 | SSize_t PadlistMAX(PADLIST padlist)'},'PadlistNAMES' => {'name' => 'PadlistNAMES','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 628 | removed without notice. | ||||||
| 629 | |||||||
| 630 | |||||||
| 631 | The names associated with pad entries. | ||||||
| 632 | |||||||
| 633 | PADNAMELIST * PadlistNAMES(PADLIST padlist)'},'PadlistNAMESARRAY' => {'name' => 'PadlistNAMESARRAY','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 634 | removed without notice. | ||||||
| 635 | |||||||
| 636 | |||||||
| 637 | The C array of pad names. | ||||||
| 638 | |||||||
| 639 | PADNAME ** PadlistNAMESARRAY(PADLIST padlist)'},'PadlistNAMESMAX' => {'name' => 'PadlistNAMESMAX','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 640 | removed without notice. | ||||||
| 641 | |||||||
| 642 | |||||||
| 643 | The index of the last pad name. | ||||||
| 644 | |||||||
| 645 | SSize_t PadlistNAMESMAX(PADLIST padlist)'},'PadlistREFCNT' => {'name' => 'PadlistREFCNT','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 646 | removed without notice. | ||||||
| 647 | |||||||
| 648 | |||||||
| 649 | The reference count of the padlist. Currently this is always 1. | ||||||
| 650 | |||||||
| 651 | U32 PadlistREFCNT(PADLIST padlist)'},'PadnameLEN' => {'name' => 'PadnameLEN','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 652 | removed without notice. | ||||||
| 653 | |||||||
| 654 | |||||||
| 655 | The length of the name. | ||||||
| 656 | |||||||
| 657 | STRLEN PadnameLEN(PADNAME pn)'},'PadnamePV' => {'name' => 'PadnamePV','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 658 | removed without notice. | ||||||
| 659 | |||||||
| 660 | |||||||
| 661 | The name stored in the pad name struct. This returns NULL for a target or | ||||||
| 662 | GV slot. | ||||||
| 663 | |||||||
| 664 | char * PadnamePV(PADNAME pn)'},'PadnameSV' => {'name' => 'PadnameSV','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 665 | removed without notice. | ||||||
| 666 | |||||||
| 667 | |||||||
| 668 | Returns the pad name as an SV. This is currently just C |
||||||
| 669 | begin returning a new mortal SV if pad names ever stop being SVs. | ||||||
| 670 | |||||||
| 671 | SV * PadnameSV(PADNAME pn)'},'PadnameUTF8' => {'name' => 'PadnameUTF8','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 672 | removed without notice. | ||||||
| 673 | |||||||
| 674 | |||||||
| 675 | Whether PadnamePV is in UTF8. | ||||||
| 676 | |||||||
| 677 | bool PadnameUTF8(PADNAME pn)'},'PadnamelistARRAY' => {'name' => 'PadnamelistARRAY','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 678 | removed without notice. | ||||||
| 679 | |||||||
| 680 | |||||||
| 681 | The C array of pad names. | ||||||
| 682 | |||||||
| 683 | PADNAME ** PadnamelistARRAY(PADNAMELIST pnl)'},'PadnamelistMAX' => {'name' => 'PadnamelistMAX','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 684 | removed without notice. | ||||||
| 685 | |||||||
| 686 | |||||||
| 687 | The index of the last pad name. | ||||||
| 688 | |||||||
| 689 | SSize_t PadnamelistMAX(PADNAMELIST pnl)'},'PerlIO_clearerr' => {'name' => 'PerlIO_clearerr','text' => ''},'PerlIO_close' => {'name' => 'PerlIO_close','text' => ''},'PerlIO_context_layers' => {'name' => 'PerlIO_context_layers','text' => ''},'PerlIO_eof' => {'name' => 'PerlIO_eof','text' => ''},'PerlIO_error' => {'name' => 'PerlIO_error','text' => ''},'PerlIO_fileno' => {'name' => 'PerlIO_fileno','text' => ''},'PerlIO_fill' => {'name' => 'PerlIO_fill','text' => ''},'PerlIO_flush' => {'name' => 'PerlIO_flush','text' => ''},'PerlIO_get_base' => {'name' => 'PerlIO_get_base','text' => ''},'PerlIO_get_bufsiz' => {'name' => 'PerlIO_get_bufsiz','text' => ''},'PerlIO_get_cnt' => {'name' => 'PerlIO_get_cnt','text' => ''},'PerlIO_get_ptr' => {'name' => 'PerlIO_get_ptr','text' => ''},'PerlIO_read' => {'name' => 'PerlIO_read','text' => ''},'PerlIO_seek' => {'name' => 'PerlIO_seek','text' => ''},'PerlIO_set_cnt' => {'name' => 'PerlIO_set_cnt','text' => ''},'PerlIO_set_ptrcnt' => {'name' => 'PerlIO_set_ptrcnt','text' => ''},'PerlIO_setlinebuf' => {'name' => 'PerlIO_setlinebuf','text' => ''},'PerlIO_stderr' => {'name' => 'PerlIO_stderr','text' => ''},'PerlIO_stdin' => {'name' => 'PerlIO_stdin','text' => ''},'PerlIO_stdout' => {'name' => 'PerlIO_stdout','text' => ''},'PerlIO_tell' => {'name' => 'PerlIO_tell','text' => ''},'PerlIO_unread' => {'name' => 'PerlIO_unread','text' => ''},'PerlIO_write' => {'name' => 'PerlIO_write','text' => ''},'Perl_signbit' => {'name' => 'Perl_signbit','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 690 | removed without notice. | ||||||
| 691 | |||||||
| 692 | |||||||
| 693 | Return a non-zero integer if the sign bit on an NV is set, and 0 if | ||||||
| 694 | it is not. | ||||||
| 695 | |||||||
| 696 | If Configure detects this system has a signbit() that will work with | ||||||
| 697 | our NVs, then we just use it via the #define in perl.h. Otherwise, | ||||||
| 698 | fall back on this implementation. As a first pass, this gets everything | ||||||
| 699 | right except -0.0. Alas, catching -0.0 is the main use for this function, | ||||||
| 700 | so this is not too helpful yet. Still, at least we have the scaffolding | ||||||
| 701 | in place to support other systems, should that prove useful. | ||||||
| 702 | |||||||
| 703 | |||||||
| 704 | Configure notes: This function is called \'Perl_signbit\' instead of a | ||||||
| 705 | plain \'signbit\' because it is easy to imagine a system having a signbit() | ||||||
| 706 | function or macro that doesn\'t happen to work with our particular choice | ||||||
| 707 | of NVs. We shouldn\'t just re-#define signbit as Perl_signbit and expect | ||||||
| 708 | the standard system headers to be happy. Also, this is a no-context | ||||||
| 709 | function (no pTHX_) because Perl_signbit() is usually re-#defined in | ||||||
| 710 | perl.h as a simple macro call to the system\'s signbit(). | ||||||
| 711 | Users should just always call Perl_signbit(). | ||||||
| 712 | |||||||
| 713 | int Perl_signbit(NV f)'},'Poison' => {'name' => 'Poison','text' => 'PoisonWith(0xEF) for catching access to freed memory. | ||||||
| 714 | |||||||
| 715 | void Poison(void* dest, int nitems, type)'},'PoisonFree' => {'name' => 'PoisonFree','text' => 'PoisonWith(0xEF) for catching access to freed memory. | ||||||
| 716 | |||||||
| 717 | void PoisonFree(void* dest, int nitems, type)'},'PoisonNew' => {'name' => 'PoisonNew','text' => 'PoisonWith(0xAB) for catching access to allocated but uninitialized memory. | ||||||
| 718 | |||||||
| 719 | void PoisonNew(void* dest, int nitems, type)'},'PoisonWith' => {'name' => 'PoisonWith','text' => 'Fill up memory with a byte pattern (a byte repeated over and over | ||||||
| 720 | again) that hopefully catches attempts to access uninitialized memory. | ||||||
| 721 | |||||||
| 722 | void PoisonWith(void* dest, int nitems, type, | ||||||
| 723 | U8 byte)'},'READ_XDIGIT' => {'name' => 'READ_XDIGIT','text' => 'Returns the value of an ASCII-range hex digit and advances the string pointer. | ||||||
| 724 | Behaviour is only well defined when isXDIGIT(*str) is true. | ||||||
| 725 | |||||||
| 726 | U8 READ_XDIGIT(char str*)'},'RETVAL' => {'name' => 'RETVAL','text' => 'Variable which is setup by C |
||||||
| 727 | XSUB. This is always the proper type for the XSUB. See | ||||||
| 728 | L |
||||||
| 729 | |||||||
| 730 | (whatever) RETVAL'},'Renew' => {'name' => 'Renew','text' => 'The XSUB-writer\'s interface to the C C |
||||||
| 731 | |||||||
| 732 | Memory obtained by this should B |
||||||
| 733 | |||||||
| 734 | void Renew(void* ptr, int nitems, type)'},'Renewc' => {'name' => 'Renewc','text' => 'The XSUB-writer\'s interface to the C C |
||||||
| 735 | cast. | ||||||
| 736 | |||||||
| 737 | Memory obtained by this should B |
||||||
| 738 | |||||||
| 739 | void Renewc(void* ptr, int nitems, type, cast)'},'SAVETMPS' => {'name' => 'SAVETMPS','text' => 'Opening bracket for temporaries on a callback. See C |
||||||
| 740 | L |
||||||
| 741 | |||||||
| 742 | SAVETMPS;'},'SP' => {'name' => 'SP','text' => 'Stack pointer. This is usually handled by C |
||||||
| 743 | C |
||||||
| 744 | |||||||
| 745 | SPAGAIN;'},'ST' => {'name' => 'ST','text' => 'Used to access elements on the XSUB\'s stack. | ||||||
| 746 | |||||||
| 747 | SV* ST(int ix)'},'SVt_INVLIST' => {'name' => 'SVt_INVLIST','text' => 'Type flag for scalars. See L.'},'SVt_IV' => {'name' => 'SVt_IV','text' => 'Type flag for scalars. See L.'},'SVt_NULL' => {'name' => 'SVt_NULL','text' => 'Type flag for scalars. See L.'},'SVt_NV' => {'name' => 'SVt_NV','text' => 'Type flag for scalars. See L.'},'SVt_PV' => {'name' => 'SVt_PV','text' => 'Type flag for scalars. See L.'},'SVt_PVAV' => {'name' => 'SVt_PVAV','text' => 'Type flag for arrays. See L.'},'SVt_PVCV' => {'name' => 'SVt_PVCV','text' => 'Type flag for subroutines. See L.'},'SVt_PVFM' => {'name' => 'SVt_PVFM','text' => 'Type flag for formats. See L.'},'SVt_PVGV' => {'name' => 'SVt_PVGV','text' => 'Type flag for typeglobs. See L.'},'SVt_PVHV' => {'name' => 'SVt_PVHV','text' => 'Type flag for hashes. See L.'},'SVt_PVIO' => {'name' => 'SVt_PVIO','text' => 'Type flag for I/O objects. See L.'},'SVt_PVIV' => {'name' => 'SVt_PVIV','text' => 'Type flag for scalars. See L.'},'SVt_PVLV' => {'name' => 'SVt_PVLV','text' => 'Type flag for scalars. See L.'},'SVt_PVMG' => {'name' => 'SVt_PVMG','text' => 'Type flag for scalars. See L.'},'SVt_PVNV' => {'name' => 'SVt_PVNV','text' => 'Type flag for scalars. See L.'},'SVt_REGEXP' => {'name' => 'SVt_REGEXP','text' => 'Type flag for regular expressions. See L.'},'Safefree' => {'name' => 'Safefree','text' => 'The XSUB-writer\'s interface to the C C |
||||||
| 748 | |||||||
| 749 | This should B |
||||||
| 750 | |||||||
| 751 | void Safefree(void* ptr)'},'StructCopy' => {'name' => 'StructCopy','text' => 'This is an architecture-independent macro to copy one structure to another. | ||||||
| 752 | |||||||
| 753 | void StructCopy(type *src, type *dest, type)'},'SvCUR' => {'name' => 'SvCUR','text' => 'Returns the length of the string which is in the SV. See C |
||||||
| 754 | |||||||
| 755 | STRLEN SvCUR(SV* sv)'},'SvCUR_set' => {'name' => 'SvCUR_set','text' => 'Set the current length of the string which is in the SV. See C |
||||||
| 756 | and C |
||||||
| 757 | |||||||
| 758 | void SvCUR_set(SV* sv, STRLEN len)'},'SvEND' => {'name' => 'SvEND','text' => 'Returns a pointer to the spot just after the last character in | ||||||
| 759 | the string which is in the SV, where there is usually a trailing | ||||||
| 760 | C |
||||||
| 761 | See C |
||||||
| 762 | |||||||
| 763 | Warning: If C |
||||||
| 764 | unallocated memory. | ||||||
| 765 | |||||||
| 766 | char* SvEND(SV* sv)'},'SvGAMAGIC' => {'name' => 'SvGAMAGIC','text' => 'Returns true if the SV has get magic or | ||||||
| 767 | overloading. If either is true then | ||||||
| 768 | the scalar is active data, and has the potential to return a new value every | ||||||
| 769 | time it is accessed. Hence you must be careful to | ||||||
| 770 | only read it once per user logical operation and work | ||||||
| 771 | with that returned value. If neither is true then | ||||||
| 772 | the scalar\'s value cannot change unless written to. | ||||||
| 773 | |||||||
| 774 | U32 SvGAMAGIC(SV* sv)'},'SvGETMAGIC' => {'name' => 'SvGETMAGIC','text' => 'Invokes C |
||||||
| 775 | will call C |
||||||
| 776 | argument more than once. | ||||||
| 777 | |||||||
| 778 | void SvGETMAGIC(SV* sv)'},'SvGROW' => {'name' => 'SvGROW','text' => 'Expands the character buffer in the SV so that it has room for the | ||||||
| 779 | indicated number of bytes (remember to reserve space for an extra trailing | ||||||
| 780 | C |
||||||
| 781 | Returns a pointer to the character | ||||||
| 782 | buffer. SV must be of type >= SVt_PV. One | ||||||
| 783 | alternative is to call C |
||||||
| 784 | |||||||
| 785 | char * SvGROW(SV* sv, STRLEN len)'},'SvIOK' => {'name' => 'SvIOK','text' => 'Returns a U32 value indicating whether the SV contains an integer. | ||||||
| 786 | |||||||
| 787 | U32 SvIOK(SV* sv)'},'SvIOK_UV' => {'name' => 'SvIOK_UV','text' => 'Returns a boolean indicating whether the SV contains an integer that must be | ||||||
| 788 | interpreted as unsigned. A non-negative integer whose value is within the | ||||||
| 789 | range of both an IV and a UV may be be flagged as either SvUOK or SVIOK. | ||||||
| 790 | |||||||
| 791 | bool SvIOK_UV(SV* sv)'},'SvIOK_notUV' => {'name' => 'SvIOK_notUV','text' => 'Returns a boolean indicating whether the SV contains a signed integer. | ||||||
| 792 | |||||||
| 793 | bool SvIOK_notUV(SV* sv)'},'SvIOK_off' => {'name' => 'SvIOK_off','text' => 'Unsets the IV status of an SV. | ||||||
| 794 | |||||||
| 795 | void SvIOK_off(SV* sv)'},'SvIOK_on' => {'name' => 'SvIOK_on','text' => 'Tells an SV that it is an integer. | ||||||
| 796 | |||||||
| 797 | void SvIOK_on(SV* sv)'},'SvIOK_only' => {'name' => 'SvIOK_only','text' => 'Tells an SV that it is an integer and disables all other OK bits. | ||||||
| 798 | |||||||
| 799 | void SvIOK_only(SV* sv)'},'SvIOK_only_UV' => {'name' => 'SvIOK_only_UV','text' => 'Tells an SV that it is an unsigned integer and disables all other OK bits. | ||||||
| 800 | |||||||
| 801 | void SvIOK_only_UV(SV* sv)'},'SvIOKp' => {'name' => 'SvIOKp','text' => 'Returns a U32 value indicating whether the SV contains an integer. Checks | ||||||
| 802 | the B |
||||||
| 803 | |||||||
| 804 | U32 SvIOKp(SV* sv)'},'SvIV' => {'name' => 'SvIV','text' => 'Coerces the given SV to an integer and returns it. See C |
||||||
| 805 | version which guarantees to evaluate sv only once. | ||||||
| 806 | |||||||
| 807 | IV SvIV(SV* sv)'},'SvIVX' => {'name' => 'SvIVX','text' => 'Returns the raw value in the SV\'s IV slot, without checks or conversions. | ||||||
| 808 | Only use when you are sure SvIOK is true. See also C |
||||||
| 809 | |||||||
| 810 | IV SvIVX(SV* sv)'},'SvIV_nomg' => {'name' => 'SvIV_nomg','text' => 'Like C |
||||||
| 811 | |||||||
| 812 | IV SvIV_nomg(SV* sv)'},'SvIV_set' => {'name' => 'SvIV_set','text' => 'Set the value of the IV pointer in sv to val. It is possible to perform | ||||||
| 813 | the same function of this macro with an lvalue assignment to C |
||||||
| 814 | With future Perls, however, it will be more efficient to use | ||||||
| 815 | C |
||||||
| 816 | |||||||
| 817 | void SvIV_set(SV* sv, IV val)'},'SvIVx' => {'name' => 'SvIVx','text' => 'Coerces the given SV to an integer and returns it. | ||||||
| 818 | Guarantees to evaluate C |
||||||
| 819 | this if C |
||||||
| 820 | otherwise use the more efficient C |
||||||
| 821 | |||||||
| 822 | IV SvIVx(SV* sv)'},'SvIsCOW' => {'name' => 'SvIsCOW','text' => 'Returns a U32 value indicating whether the SV is Copy-On-Write (either shared | ||||||
| 823 | hash key scalars, or full Copy On Write scalars if 5.9.0 is configured for | ||||||
| 824 | COW). | ||||||
| 825 | |||||||
| 826 | U32 SvIsCOW(SV* sv)'},'SvIsCOW_shared_hash' => {'name' => 'SvIsCOW_shared_hash','text' => 'Returns a boolean indicating whether the SV is Copy-On-Write shared hash key | ||||||
| 827 | scalar. | ||||||
| 828 | |||||||
| 829 | bool SvIsCOW_shared_hash(SV* sv)'},'SvLEN' => {'name' => 'SvLEN','text' => 'Returns the size of the string buffer in the SV, not including any part | ||||||
| 830 | attributable to C |
||||||
| 831 | |||||||
| 832 | STRLEN SvLEN(SV* sv)'},'SvLEN_set' => {'name' => 'SvLEN_set','text' => 'Set the actual length of the string which is in the SV. See C |
||||||
| 833 | |||||||
| 834 | void SvLEN_set(SV* sv, STRLEN len)'},'SvLOCK' => {'name' => 'SvLOCK','text' => 'Arranges for a mutual exclusion lock to be obtained on sv if a suitable module | ||||||
| 835 | has been loaded. | ||||||
| 836 | |||||||
| 837 | void SvLOCK(SV* sv)'},'SvMAGIC_set' => {'name' => 'SvMAGIC_set','text' => 'Set the value of the MAGIC pointer in sv to val. See C |
||||||
| 838 | |||||||
| 839 | void SvMAGIC_set(SV* sv, MAGIC* val)'},'SvNIOK' => {'name' => 'SvNIOK','text' => 'Returns a U32 value indicating whether the SV contains a number, integer or | ||||||
| 840 | double. | ||||||
| 841 | |||||||
| 842 | U32 SvNIOK(SV* sv)'},'SvNIOK_off' => {'name' => 'SvNIOK_off','text' => 'Unsets the NV/IV status of an SV. | ||||||
| 843 | |||||||
| 844 | void SvNIOK_off(SV* sv)'},'SvNIOKp' => {'name' => 'SvNIOKp','text' => 'Returns a U32 value indicating whether the SV contains a number, integer or | ||||||
| 845 | double. Checks the B |
||||||
| 846 | |||||||
| 847 | U32 SvNIOKp(SV* sv)'},'SvNOK' => {'name' => 'SvNOK','text' => 'Returns a U32 value indicating whether the SV contains a double. | ||||||
| 848 | |||||||
| 849 | U32 SvNOK(SV* sv)'},'SvNOK_off' => {'name' => 'SvNOK_off','text' => 'Unsets the NV status of an SV. | ||||||
| 850 | |||||||
| 851 | void SvNOK_off(SV* sv)'},'SvNOK_on' => {'name' => 'SvNOK_on','text' => 'Tells an SV that it is a double. | ||||||
| 852 | |||||||
| 853 | void SvNOK_on(SV* sv)'},'SvNOK_only' => {'name' => 'SvNOK_only','text' => 'Tells an SV that it is a double and disables all other OK bits. | ||||||
| 854 | |||||||
| 855 | void SvNOK_only(SV* sv)'},'SvNOKp' => {'name' => 'SvNOKp','text' => 'Returns a U32 value indicating whether the SV contains a double. Checks the | ||||||
| 856 | B |
||||||
| 857 | |||||||
| 858 | U32 SvNOKp(SV* sv)'},'SvNV' => {'name' => 'SvNV','text' => 'Coerce the given SV to a double and return it. See C |
||||||
| 859 | which guarantees to evaluate sv only once. | ||||||
| 860 | |||||||
| 861 | NV SvNV(SV* sv)'},'SvNVX' => {'name' => 'SvNVX','text' => 'Returns the raw value in the SV\'s NV slot, without checks or conversions. | ||||||
| 862 | Only use when you are sure SvNOK is true. See also C |
||||||
| 863 | |||||||
| 864 | NV SvNVX(SV* sv)'},'SvNV_nomg' => {'name' => 'SvNV_nomg','text' => 'Like C |
||||||
| 865 | |||||||
| 866 | NV SvNV_nomg(SV* sv)'},'SvNV_set' => {'name' => 'SvNV_set','text' => 'Set the value of the NV pointer in sv to val. See C |
||||||
| 867 | |||||||
| 868 | void SvNV_set(SV* sv, NV val)'},'SvNVx' => {'name' => 'SvNVx','text' => 'Coerces the given SV to a double and returns it. | ||||||
| 869 | Guarantees to evaluate C |
||||||
| 870 | this if C |
||||||
| 871 | otherwise use the more efficient C |
||||||
| 872 | |||||||
| 873 | NV SvNVx(SV* sv)'},'SvOK' => {'name' => 'SvOK','text' => 'Returns a U32 value indicating whether the value is defined. This is | ||||||
| 874 | only meaningful for scalars. | ||||||
| 875 | |||||||
| 876 | U32 SvOK(SV* sv)'},'SvOOK' => {'name' => 'SvOOK','text' => 'Returns a U32 indicating whether the pointer to the string buffer is offset. | ||||||
| 877 | This hack is used internally to speed up removal of characters from the | ||||||
| 878 | beginning of a SvPV. When SvOOK is true, then the start of the | ||||||
| 879 | allocated string buffer is actually C |
||||||
| 880 | This offset used to be stored in SvIVX, but is now stored within the spare | ||||||
| 881 | part of the buffer. | ||||||
| 882 | |||||||
| 883 | U32 SvOOK(SV* sv)'},'SvOOK_offset' => {'name' => 'SvOOK_offset','text' => 'Reads into I |
||||||
| 884 | allocated buffer, which will be non-zero if C |
||||||
| 885 | efficiently remove characters from start of the buffer. Implemented as a | ||||||
| 886 | macro, which takes the address of I |
||||||
| 887 | Evaluates I |
||||||
| 888 | |||||||
| 889 | void SvOOK_offset(NN SV*sv, STRLEN len)'},'SvPOK' => {'name' => 'SvPOK','text' => 'Returns a U32 value indicating whether the SV contains a character | ||||||
| 890 | string. | ||||||
| 891 | |||||||
| 892 | U32 SvPOK(SV* sv)'},'SvPOK_off' => {'name' => 'SvPOK_off','text' => 'Unsets the PV status of an SV. | ||||||
| 893 | |||||||
| 894 | void SvPOK_off(SV* sv)'},'SvPOK_on' => {'name' => 'SvPOK_on','text' => 'Tells an SV that it is a string. | ||||||
| 895 | |||||||
| 896 | void SvPOK_on(SV* sv)'},'SvPOK_only' => {'name' => 'SvPOK_only','text' => 'Tells an SV that it is a string and disables all other OK bits. | ||||||
| 897 | Will also turn off the UTF-8 status. | ||||||
| 898 | |||||||
| 899 | void SvPOK_only(SV* sv)'},'SvPOK_only_UTF8' => {'name' => 'SvPOK_only_UTF8','text' => 'Tells an SV that it is a string and disables all other OK bits, | ||||||
| 900 | and leaves the UTF-8 status as it was. | ||||||
| 901 | |||||||
| 902 | void SvPOK_only_UTF8(SV* sv)'},'SvPOKp' => {'name' => 'SvPOKp','text' => 'Returns a U32 value indicating whether the SV contains a character string. | ||||||
| 903 | Checks the B |
||||||
| 904 | |||||||
| 905 | U32 SvPOKp(SV* sv)'},'SvPV' => {'name' => 'SvPV','text' => 'Returns a pointer to the string in the SV, or a stringified form of | ||||||
| 906 | the SV if the SV does not contain a string. The SV may cache the | ||||||
| 907 | stringified version becoming C |
||||||
| 908 | C |
||||||
| 909 | don\'t use C<&len>). See also C |
||||||
| 910 | evaluate sv only once. | ||||||
| 911 | |||||||
| 912 | Note that there is no guarantee that the return value of C |
||||||
| 913 | equal to C |
||||||
| 914 | successive calls to C |
||||||
| 915 | time. This is due to the way that things like overloading and | ||||||
| 916 | Copy-On-Write are handled. In these cases, the return value may point to | ||||||
| 917 | a temporary buffer or similar. If you absolutely need the SvPVX field to | ||||||
| 918 | be valid (for example, if you intend to write to it), then see | ||||||
| 919 | L. | ||||||
| 920 | |||||||
| 921 | char* SvPV(SV* sv, STRLEN len)'},'SvPVX' => {'name' => 'SvPVX','text' => 'Returns a pointer to the physical string in the SV. The SV must contain a | ||||||
| 922 | string. Prior to 5.9.3 it is not safe | ||||||
| 923 | to execute this macro unless the SV\'s | ||||||
| 924 | type >= SVt_PV. | ||||||
| 925 | |||||||
| 926 | This is also used to store the name of an autoloaded subroutine in an XS | ||||||
| 927 | AUTOLOAD routine. See L |
||||||
| 928 | |||||||
| 929 | char* SvPVX(SV* sv)'},'SvPV_force' => {'name' => 'SvPV_force','text' => 'Like C |
||||||
| 930 | only a string (C |
||||||
| 931 | going to update the C |
||||||
| 932 | |||||||
| 933 | Note that coercing an arbitrary scalar into a plain PV will potentially | ||||||
| 934 | strip useful data from it. For example if the SV was C |
||||||
| 935 | referent will have its reference count decremented, and the SV itself may | ||||||
| 936 | be converted to an C |
||||||
| 937 | such as C<"ARRAY(0x1234)">. | ||||||
| 938 | |||||||
| 939 | char* SvPV_force(SV* sv, STRLEN len)'},'SvPV_force_nomg' => {'name' => 'SvPV_force_nomg','text' => 'Like C |
||||||
| 940 | |||||||
| 941 | char* SvPV_force_nomg(SV* sv, STRLEN len)'},'SvPV_nolen' => {'name' => 'SvPV_nolen','text' => 'Like C |
||||||
| 942 | |||||||
| 943 | char* SvPV_nolen(SV* sv)'},'SvPV_nomg' => {'name' => 'SvPV_nomg','text' => 'Like C |
||||||
| 944 | |||||||
| 945 | char* SvPV_nomg(SV* sv, STRLEN len)'},'SvPV_nomg_nolen' => {'name' => 'SvPV_nomg_nolen','text' => 'Like C |
||||||
| 946 | |||||||
| 947 | char* SvPV_nomg_nolen(SV* sv)'},'SvPV_set' => {'name' => 'SvPV_set','text' => 'Set the value of the PV pointer in C |
||||||
| 948 | C |
||||||
| 949 | |||||||
| 950 | Beware that the existing pointer may be involved in copy-on-write or other | ||||||
| 951 | mischief, so do C |
||||||
| 952 | C |
||||||
| 953 | modification is safe. | ||||||
| 954 | |||||||
| 955 | void SvPV_set(SV* sv, char* val)'},'SvPVbyte' => {'name' => 'SvPVbyte','text' => 'Like C |
||||||
| 956 | |||||||
| 957 | char* SvPVbyte(SV* sv, STRLEN len)'},'SvPVbyte_force' => {'name' => 'SvPVbyte_force','text' => 'Like C |
||||||
| 958 | |||||||
| 959 | char* SvPVbyte_force(SV* sv, STRLEN len)'},'SvPVbyte_nolen' => {'name' => 'SvPVbyte_nolen','text' => 'Like C |
||||||
| 960 | |||||||
| 961 | char* SvPVbyte_nolen(SV* sv)'},'SvPVbytex' => {'name' => 'SvPVbytex','text' => 'Like C |
||||||
| 962 | Guarantees to evaluate sv only once; use the more efficient C |
||||||
| 963 | otherwise. | ||||||
| 964 | |||||||
| 965 | char* SvPVbytex(SV* sv, STRLEN len)'},'SvPVbytex_force' => {'name' => 'SvPVbytex_force','text' => 'Like C |
||||||
| 966 | Guarantees to evaluate sv only once; use the more efficient C |
||||||
| 967 | otherwise. | ||||||
| 968 | |||||||
| 969 | char* SvPVbytex_force(SV* sv, STRLEN len)'},'SvPVutf8' => {'name' => 'SvPVutf8','text' => 'Like C |
||||||
| 970 | |||||||
| 971 | char* SvPVutf8(SV* sv, STRLEN len)'},'SvPVutf8_force' => {'name' => 'SvPVutf8_force','text' => 'Like C |
||||||
| 972 | |||||||
| 973 | char* SvPVutf8_force(SV* sv, STRLEN len)'},'SvPVutf8_nolen' => {'name' => 'SvPVutf8_nolen','text' => 'Like C |
||||||
| 974 | |||||||
| 975 | char* SvPVutf8_nolen(SV* sv)'},'SvPVutf8x' => {'name' => 'SvPVutf8x','text' => 'Like C |
||||||
| 976 | Guarantees to evaluate sv only once; use the more efficient C |
||||||
| 977 | otherwise. | ||||||
| 978 | |||||||
| 979 | char* SvPVutf8x(SV* sv, STRLEN len)'},'SvPVutf8x_force' => {'name' => 'SvPVutf8x_force','text' => 'Like C |
||||||
| 980 | Guarantees to evaluate sv only once; use the more efficient C |
||||||
| 981 | otherwise. | ||||||
| 982 | |||||||
| 983 | char* SvPVutf8x_force(SV* sv, STRLEN len)'},'SvPVx' => {'name' => 'SvPVx','text' => 'A version of C |
||||||
| 984 | Only use this if C |
||||||
| 985 | more efficient C |
||||||
| 986 | |||||||
| 987 | char* SvPVx(SV* sv, STRLEN len)'},'SvREFCNT' => {'name' => 'SvREFCNT','text' => 'Returns the value of the object\'s reference count. | ||||||
| 988 | |||||||
| 989 | U32 SvREFCNT(SV* sv)'},'SvREFCNT_dec' => {'name' => 'SvREFCNT_dec','text' => 'Decrements the reference count of the given SV. I |
||||||
| 990 | |||||||
| 991 | void SvREFCNT_dec(SV* sv)'},'SvREFCNT_dec_NN' => {'name' => 'SvREFCNT_dec_NN','text' => 'Same as SvREFCNT_dec, but can only be used if you know I |
||||||
| 992 | is not NULL. Since we don\'t have to check the NULLness, it\'s faster | ||||||
| 993 | and smaller. | ||||||
| 994 | |||||||
| 995 | void SvREFCNT_dec_NN(SV* sv)'},'SvREFCNT_inc' => {'name' => 'SvREFCNT_inc','text' => 'Increments the reference count of the given SV, returning the SV. | ||||||
| 996 | |||||||
| 997 | All of the following SvREFCNT_inc* macros are optimized versions of | ||||||
| 998 | SvREFCNT_inc, and can be replaced with SvREFCNT_inc. | ||||||
| 999 | |||||||
| 1000 | SV* SvREFCNT_inc(SV* sv)'},'SvREFCNT_inc_NN' => {'name' => 'SvREFCNT_inc_NN','text' => 'Same as SvREFCNT_inc, but can only be used if you know I |
||||||
| 1001 | is not NULL. Since we don\'t have to check the NULLness, it\'s faster | ||||||
| 1002 | and smaller. | ||||||
| 1003 | |||||||
| 1004 | SV* SvREFCNT_inc_NN(SV* sv)'},'SvREFCNT_inc_simple' => {'name' => 'SvREFCNT_inc_simple','text' => 'Same as SvREFCNT_inc, but can only be used with expressions without side | ||||||
| 1005 | effects. Since we don\'t have to store a temporary value, it\'s faster. | ||||||
| 1006 | |||||||
| 1007 | SV* SvREFCNT_inc_simple(SV* sv)'},'SvREFCNT_inc_simple_NN' => {'name' => 'SvREFCNT_inc_simple_NN','text' => 'Same as SvREFCNT_inc_simple, but can only be used if you know I |
||||||
| 1008 | is not NULL. Since we don\'t have to check the NULLness, it\'s faster | ||||||
| 1009 | and smaller. | ||||||
| 1010 | |||||||
| 1011 | SV* SvREFCNT_inc_simple_NN(SV* sv)'},'SvREFCNT_inc_simple_void' => {'name' => 'SvREFCNT_inc_simple_void','text' => 'Same as SvREFCNT_inc_simple, but can only be used if you don\'t need the | ||||||
| 1012 | return value. The macro doesn\'t need to return a meaningful value. | ||||||
| 1013 | |||||||
| 1014 | void SvREFCNT_inc_simple_void(SV* sv)'},'SvREFCNT_inc_simple_void_NN' => {'name' => 'SvREFCNT_inc_simple_void_NN','text' => 'Same as SvREFCNT_inc, but can only be used if you don\'t need the return | ||||||
| 1015 | value, and you know that I |
||||||
| 1016 | to return a meaningful value, or check for NULLness, so it\'s smaller | ||||||
| 1017 | and faster. | ||||||
| 1018 | |||||||
| 1019 | void SvREFCNT_inc_simple_void_NN(SV* sv)'},'SvREFCNT_inc_void' => {'name' => 'SvREFCNT_inc_void','text' => 'Same as SvREFCNT_inc, but can only be used if you don\'t need the | ||||||
| 1020 | return value. The macro doesn\'t need to return a meaningful value. | ||||||
| 1021 | |||||||
| 1022 | void SvREFCNT_inc_void(SV* sv)'},'SvREFCNT_inc_void_NN' => {'name' => 'SvREFCNT_inc_void_NN','text' => 'Same as SvREFCNT_inc, but can only be used if you don\'t need the return | ||||||
| 1023 | value, and you know that I |
||||||
| 1024 | to return a meaningful value, or check for NULLness, so it\'s smaller | ||||||
| 1025 | and faster. | ||||||
| 1026 | |||||||
| 1027 | void SvREFCNT_inc_void_NN(SV* sv)'},'SvROK' => {'name' => 'SvROK','text' => 'Tests if the SV is an RV. | ||||||
| 1028 | |||||||
| 1029 | U32 SvROK(SV* sv)'},'SvROK_off' => {'name' => 'SvROK_off','text' => 'Unsets the RV status of an SV. | ||||||
| 1030 | |||||||
| 1031 | void SvROK_off(SV* sv)'},'SvROK_on' => {'name' => 'SvROK_on','text' => 'Tells an SV that it is an RV. | ||||||
| 1032 | |||||||
| 1033 | void SvROK_on(SV* sv)'},'SvRV' => {'name' => 'SvRV','text' => 'Dereferences an RV to return the SV. | ||||||
| 1034 | |||||||
| 1035 | SV* SvRV(SV* sv)'},'SvRV_set' => {'name' => 'SvRV_set','text' => 'Set the value of the RV pointer in sv to val. See C |
||||||
| 1036 | |||||||
| 1037 | void SvRV_set(SV* sv, SV* val)'},'SvRX' => {'name' => 'SvRX','text' => 'Convenience macro to get the REGEXP from a SV. This is approximately | ||||||
| 1038 | equivalent to the following snippet: | ||||||
| 1039 | |||||||
| 1040 | if (SvMAGICAL(sv)) | ||||||
| 1041 | mg_get(sv); | ||||||
| 1042 | if (SvROK(sv)) | ||||||
| 1043 | sv = MUTABLE_SV(SvRV(sv)); | ||||||
| 1044 | if (SvTYPE(sv) == SVt_REGEXP) | ||||||
| 1045 | return (REGEXP*) sv; | ||||||
| 1046 | |||||||
| 1047 | NULL will be returned if a REGEXP* is not found. | ||||||
| 1048 | |||||||
| 1049 | REGEXP * SvRX(SV *sv)'},'SvRXOK' => {'name' => 'SvRXOK','text' => 'Returns a boolean indicating whether the SV (or the one it references) | ||||||
| 1050 | is a REGEXP. | ||||||
| 1051 | |||||||
| 1052 | If you want to do something with the REGEXP* later use SvRX instead | ||||||
| 1053 | and check for NULL. | ||||||
| 1054 | |||||||
| 1055 | bool SvRXOK(SV* sv)'},'SvSETMAGIC' => {'name' => 'SvSETMAGIC','text' => 'Invokes C |
||||||
| 1056 | after modifying a scalar, in case it is a magical variable like C<$|> | ||||||
| 1057 | or a tied variable (it calls C |
||||||
| 1058 | argument more than once. | ||||||
| 1059 | |||||||
| 1060 | void SvSETMAGIC(SV* sv)'},'SvSHARE' => {'name' => 'SvSHARE','text' => 'Arranges for sv to be shared between threads if a suitable module | ||||||
| 1061 | has been loaded. | ||||||
| 1062 | |||||||
| 1063 | void SvSHARE(SV* sv)'},'SvSTASH' => {'name' => 'SvSTASH','text' => 'Returns the stash of the SV. | ||||||
| 1064 | |||||||
| 1065 | HV* SvSTASH(SV* sv)'},'SvSTASH_set' => {'name' => 'SvSTASH_set','text' => 'Set the value of the STASH pointer in sv to val. See C |
||||||
| 1066 | |||||||
| 1067 | void SvSTASH_set(SV* sv, HV* val)'},'SvSetMagicSV' => {'name' => 'SvSetMagicSV','text' => 'Like C |
||||||
| 1068 | |||||||
| 1069 | void SvSetMagicSV(SV* dsv, SV* ssv)'},'SvSetMagicSV_nosteal' => {'name' => 'SvSetMagicSV_nosteal','text' => 'Like C |
||||||
| 1070 | |||||||
| 1071 | void SvSetMagicSV_nosteal(SV* dsv, SV* ssv)'},'SvSetSV' => {'name' => 'SvSetSV','text' => 'Calls C |
||||||
| 1072 | more than once. Does not handle \'set\' magic on the destination SV. | ||||||
| 1073 | |||||||
| 1074 | void SvSetSV(SV* dsv, SV* ssv)'},'SvSetSV_nosteal' => {'name' => 'SvSetSV_nosteal','text' => 'Calls a non-destructive version of C |
||||||
| 1075 | ssv. May evaluate arguments more than once. | ||||||
| 1076 | |||||||
| 1077 | void SvSetSV_nosteal(SV* dsv, SV* ssv)'},'SvTAINT' => {'name' => 'SvTAINT','text' => 'Taints an SV if tainting is enabled, and if some input to the current | ||||||
| 1078 | expression is tainted--usually a variable, but possibly also implicit | ||||||
| 1079 | inputs such as locale settings. C |
||||||
| 1080 | the outputs of an expression in a pessimistic fashion; i.e., without paying | ||||||
| 1081 | attention to precisely which outputs are influenced by which inputs. | ||||||
| 1082 | |||||||
| 1083 | void SvTAINT(SV* sv)'},'SvTAINTED' => {'name' => 'SvTAINTED','text' => 'Checks to see if an SV is tainted. Returns TRUE if it is, FALSE if | ||||||
| 1084 | not. | ||||||
| 1085 | |||||||
| 1086 | bool SvTAINTED(SV* sv)'},'SvTAINTED_off' => {'name' => 'SvTAINTED_off','text' => 'Untaints an SV. Be I |
||||||
| 1087 | some of Perl\'s fundamental security features. XS module authors should not | ||||||
| 1088 | use this function unless they fully understand all the implications of | ||||||
| 1089 | unconditionally untainting the value. Untainting should be done in the | ||||||
| 1090 | standard perl fashion, via a carefully crafted regexp, rather than directly | ||||||
| 1091 | untainting variables. | ||||||
| 1092 | |||||||
| 1093 | void SvTAINTED_off(SV* sv)'},'SvTAINTED_on' => {'name' => 'SvTAINTED_on','text' => 'Marks an SV as tainted if tainting is enabled. | ||||||
| 1094 | |||||||
| 1095 | void SvTAINTED_on(SV* sv)'},'SvTRUE' => {'name' => 'SvTRUE','text' => 'Returns a boolean indicating whether Perl would evaluate the SV as true or | ||||||
| 1096 | false. See SvOK() for a defined/undefined test. Handles \'get\' magic | ||||||
| 1097 | unless the scalar is already SvPOK, SvIOK or SvNOK (the public, not the | ||||||
| 1098 | private flags). | ||||||
| 1099 | |||||||
| 1100 | bool SvTRUE(SV* sv)'},'SvTRUE_nomg' => {'name' => 'SvTRUE_nomg','text' => 'Returns a boolean indicating whether Perl would evaluate the SV as true or | ||||||
| 1101 | false. See SvOK() for a defined/undefined test. Does not handle \'get\' magic. | ||||||
| 1102 | |||||||
| 1103 | bool SvTRUE_nomg(SV* sv)'},'SvTYPE' => {'name' => 'SvTYPE','text' => 'Returns the type of the SV. See C |
||||||
| 1104 | |||||||
| 1105 | svtype SvTYPE(SV* sv)'},'SvUNLOCK' => {'name' => 'SvUNLOCK','text' => 'Releases a mutual exclusion lock on sv if a suitable module | ||||||
| 1106 | has been loaded. | ||||||
| 1107 | |||||||
| 1108 | void SvUNLOCK(SV* sv)'},'SvUOK' => {'name' => 'SvUOK','text' => 'Returns a boolean indicating whether the SV contains an integer that must be | ||||||
| 1109 | interpreted as unsigned. A non-negative integer whose value is within the | ||||||
| 1110 | range of both an IV and a UV may be be flagged as either SvUOK or SVIOK. | ||||||
| 1111 | |||||||
| 1112 | bool SvUOK(SV* sv)'},'SvUPGRADE' => {'name' => 'SvUPGRADE','text' => 'Used to upgrade an SV to a more complex form. Uses C |
||||||
| 1113 | perform the upgrade if necessary. See C |
||||||
| 1114 | |||||||
| 1115 | void SvUPGRADE(SV* sv, svtype type)'},'SvUTF8' => {'name' => 'SvUTF8','text' => 'Returns a U32 value indicating the UTF-8 status of an SV. If things are set-up | ||||||
| 1116 | properly, this indicates whether or not the SV contains UTF-8 encoded data. | ||||||
| 1117 | You should use this I |
||||||
| 1118 | case any call to string overloading updates the internal flag. | ||||||
| 1119 | |||||||
| 1120 | U32 SvUTF8(SV* sv)'},'SvUTF8_off' => {'name' => 'SvUTF8_off','text' => 'Unsets the UTF-8 status of an SV (the data is not changed, just the flag). | ||||||
| 1121 | Do not use frivolously. | ||||||
| 1122 | |||||||
| 1123 | void SvUTF8_off(SV *sv)'},'SvUTF8_on' => {'name' => 'SvUTF8_on','text' => 'Turn on the UTF-8 status of an SV (the data is not changed, just the flag). | ||||||
| 1124 | Do not use frivolously. | ||||||
| 1125 | |||||||
| 1126 | void SvUTF8_on(SV *sv)'},'SvUV' => {'name' => 'SvUV','text' => 'Coerces the given SV to an unsigned integer and returns it. See C |
||||||
| 1127 | for a version which guarantees to evaluate sv only once. | ||||||
| 1128 | |||||||
| 1129 | UV SvUV(SV* sv)'},'SvUVX' => {'name' => 'SvUVX','text' => 'Returns the raw value in the SV\'s UV slot, without checks or conversions. | ||||||
| 1130 | Only use when you are sure SvIOK is true. See also C |
||||||
| 1131 | |||||||
| 1132 | UV SvUVX(SV* sv)'},'SvUV_nomg' => {'name' => 'SvUV_nomg','text' => 'Like C |
||||||
| 1133 | |||||||
| 1134 | UV SvUV_nomg(SV* sv)'},'SvUV_set' => {'name' => 'SvUV_set','text' => 'Set the value of the UV pointer in sv to val. See C |
||||||
| 1135 | |||||||
| 1136 | void SvUV_set(SV* sv, UV val)'},'SvUVx' => {'name' => 'SvUVx','text' => 'Coerces the given SV to an unsigned integer and | ||||||
| 1137 | returns it. Guarantees to evaluate C |
||||||
| 1138 | use this if C |
||||||
| 1139 | otherwise use the more efficient C |
||||||
| 1140 | |||||||
| 1141 | UV SvUVx(SV* sv)'},'SvVOK' => {'name' => 'SvVOK','text' => 'Returns a boolean indicating whether the SV contains a v-string. | ||||||
| 1142 | |||||||
| 1143 | bool SvVOK(SV* sv)'},'THIS' => {'name' => 'THIS','text' => 'Variable which is setup by C |
||||||
| 1144 | XSUB. This is always the proper type for the C++ object. See C |
||||||
| 1145 | L |
||||||
| 1146 | |||||||
| 1147 | (whatever) THIS'},'UNDERBAR' => {'name' => 'UNDERBAR','text' => 'The SV* corresponding to the $_ variable. Works even if there | ||||||
| 1148 | is a lexical $_ in scope.'},'XCPT_CATCH' => {'name' => 'XCPT_CATCH','text' => 'Introduces a catch block. See L |
||||||
| 1149 | |||||||
| 1150 | XCPT_RETHROW;'},'XCPT_TRY_END' => {'name' => 'XCPT_TRY_END','text' => 'Ends a try block. See L |
||||||
| 1151 | \'set\' magic. Uses C |
||||||
| 1152 | declare it. Do not call multiple C |
||||||
| 1153 | from XSUB\'s - see C |
||||||
| 1154 | |||||||
| 1155 | void XPUSHi(IV iv)'},'XPUSHmortal' => {'name' => 'XPUSHmortal','text' => 'Push a new mortal SV onto the stack, extending the stack if necessary. | ||||||
| 1156 | Does not use C |
||||||
| 1157 | |||||||
| 1158 | void XPUSHmortal()'},'XPUSHn' => {'name' => 'XPUSHn','text' => 'Push a double onto the stack, extending the stack if necessary. Handles | ||||||
| 1159 | \'set\' magic. Uses C |
||||||
| 1160 | declare it. Do not call multiple C |
||||||
| 1161 | from XSUB\'s - see C |
||||||
| 1162 | |||||||
| 1163 | void XPUSHn(NV nv)'},'XPUSHp' => {'name' => 'XPUSHp','text' => 'Push a string onto the stack, extending the stack if necessary. The C |
||||||
| 1164 | indicates the length of the string. Handles \'set\' magic. Uses C |
||||||
| 1165 | C |
||||||
| 1166 | multiple C |
||||||
| 1167 | C |
||||||
| 1168 | |||||||
| 1169 | void XPUSHp(char* str, STRLEN len)'},'XPUSHs' => {'name' => 'XPUSHs','text' => 'Push an SV onto the stack, extending the stack if necessary. Does not | ||||||
| 1170 | handle \'set\' magic. Does not use C |
||||||
| 1171 | C |
||||||
| 1172 | |||||||
| 1173 | void XPUSHs(SV* sv)'},'XPUSHu' => {'name' => 'XPUSHu','text' => 'Push an unsigned integer onto the stack, extending the stack if necessary. | ||||||
| 1174 | Handles \'set\' magic. Uses C |
||||||
| 1175 | called to declare it. Do not call multiple C |
||||||
| 1176 | return lists from XSUB\'s - see C |
||||||
| 1177 | C |
||||||
| 1178 | |||||||
| 1179 | void XPUSHu(UV uv)'},'XS' => {'name' => 'XS','text' => 'Macro to declare an XSUB and its C parameter list. This is handled by | ||||||
| 1180 | C |
||||||
| 1181 | handled by C |
||||||
| 1182 | |||||||
| 1183 | void XSRETURN(int nitems)'},'XSRETURN_EMPTY' => {'name' => 'XSRETURN_EMPTY','text' => 'Return an empty list from an XSUB immediately. | ||||||
| 1184 | |||||||
| 1185 | XSRETURN_EMPTY;'},'XSRETURN_IV' => {'name' => 'XSRETURN_IV','text' => 'Return an integer from an XSUB immediately. Uses C |
||||||
| 1186 | |||||||
| 1187 | void XSRETURN_IV(IV iv)'},'XSRETURN_NO' => {'name' => 'XSRETURN_NO','text' => 'Return C<&PL_sv_no> from an XSUB immediately. Uses C |
||||||
| 1188 | |||||||
| 1189 | XSRETURN_NO;'},'XSRETURN_NV' => {'name' => 'XSRETURN_NV','text' => 'Return a double from an XSUB immediately. Uses C |
||||||
| 1190 | |||||||
| 1191 | void XSRETURN_NV(NV nv)'},'XSRETURN_PV' => {'name' => 'XSRETURN_PV','text' => 'Return a copy of a string from an XSUB immediately. Uses C |
||||||
| 1192 | |||||||
| 1193 | void XSRETURN_PV(char* str)'},'XSRETURN_UNDEF' => {'name' => 'XSRETURN_UNDEF','text' => 'Return C<&PL_sv_undef> from an XSUB immediately. Uses C |
||||||
| 1194 | |||||||
| 1195 | XSRETURN_UNDEF;'},'XSRETURN_UV' => {'name' => 'XSRETURN_UV','text' => 'Return an integer from an XSUB immediately. Uses C |
||||||
| 1196 | |||||||
| 1197 | void XSRETURN_UV(IV uv)'},'XSRETURN_YES' => {'name' => 'XSRETURN_YES','text' => 'Return C<&PL_sv_yes> from an XSUB immediately. Uses C |
||||||
| 1198 | |||||||
| 1199 | XSRETURN_YES;'},'XST_mIV' => {'name' => 'XST_mIV','text' => 'Place an integer into the specified position C |
||||||
| 1200 | value is stored in a new mortal SV. | ||||||
| 1201 | |||||||
| 1202 | void XST_mIV(int pos, IV iv)'},'XST_mNO' => {'name' => 'XST_mNO','text' => 'Place C<&PL_sv_no> into the specified position C |
||||||
| 1203 | stack. | ||||||
| 1204 | |||||||
| 1205 | void XST_mNO(int pos)'},'XST_mNV' => {'name' => 'XST_mNV','text' => 'Place a double into the specified position C |
||||||
| 1206 | is stored in a new mortal SV. | ||||||
| 1207 | |||||||
| 1208 | void XST_mNV(int pos, NV nv)'},'XST_mPV' => {'name' => 'XST_mPV','text' => 'Place a copy of a string into the specified position C |
||||||
| 1209 | The value is stored in a new mortal SV. | ||||||
| 1210 | |||||||
| 1211 | void XST_mPV(int pos, char* str)'},'XST_mUNDEF' => {'name' => 'XST_mUNDEF','text' => 'Place C<&PL_sv_undef> into the specified position C |
||||||
| 1212 | stack. | ||||||
| 1213 | |||||||
| 1214 | void XST_mUNDEF(int pos)'},'XST_mYES' => {'name' => 'XST_mYES','text' => 'Place C<&PL_sv_yes> into the specified position C |
||||||
| 1215 | stack. | ||||||
| 1216 | |||||||
| 1217 | void XST_mYES(int pos)'},'XS_APIVERSION_BOOTCHECK' => {'name' => 'XS_APIVERSION_BOOTCHECK','text' => 'Macro to verify that the perl api version an XS module has been compiled against | ||||||
| 1218 | matches the api version of the perl interpreter it\'s being loaded into. | ||||||
| 1219 | |||||||
| 1220 | XS_APIVERSION_BOOTCHECK;'},'XS_EXTERNAL' => {'name' => 'XS_EXTERNAL','text' => 'Macro to declare an XSUB and its C parameter list explicitly exporting the symbols.'},'XS_INTERNAL' => {'name' => 'XS_INTERNAL','text' => 'Macro to declare an XSUB and its C parameter list without exporting the symbols. | ||||||
| 1221 | This is handled by C |
||||||
| 1222 | symbols unnecessarily.'},'XS_VERSION' => {'name' => 'XS_VERSION','text' => 'The version identifier for an XS module. This is usually | ||||||
| 1223 | handled automatically by C |
||||||
| 1224 | module\'s C |
||||||
| 1225 | C |
||||||
| 1226 | |||||||
| 1227 | XS_VERSION_BOOTCHECK;'},'XopDISABLE' => {'name' => 'XopDISABLE','text' => 'Temporarily disable a member of the XOP, by clearing the appropriate flag. | ||||||
| 1228 | |||||||
| 1229 | void XopDISABLE(XOP *xop, which)'},'XopENABLE' => {'name' => 'XopENABLE','text' => 'Reenable a member of the XOP which has been disabled. | ||||||
| 1230 | |||||||
| 1231 | void XopENABLE(XOP *xop, which)'},'XopENTRY' => {'name' => 'XopENTRY','text' => 'Return a member of the XOP structure. I |
||||||
| 1232 | indicating which entry to return. If the member is not set | ||||||
| 1233 | this will return a default value. The return type depends | ||||||
| 1234 | on I |
||||||
| 1235 | once. If you are using C |
||||||
| 1236 | C |
||||||
| 1237 | |||||||
| 1238 | XopENTRY(XOP *xop, which)'},'XopENTRYCUSTOM' => {'name' => 'XopENTRYCUSTOM','text' => 'Exactly like C |
||||||
| 1239 | efficient. The I |
||||||
| 1240 | |||||||
| 1241 | XopENTRYCUSTOM(const OP *o, which)'},'XopENTRY_set' => {'name' => 'XopENTRY_set','text' => 'Set a member of the XOP structure. I |
||||||
| 1242 | indicating which entry to set. See L |
||||||
| 1243 | for details about the available members and how | ||||||
| 1244 | they are used. This macro evaluates its argument | ||||||
| 1245 | more than once. | ||||||
| 1246 | |||||||
| 1247 | void XopENTRY_set(XOP *xop, which, value)'},'XopFLAGS' => {'name' => 'XopFLAGS','text' => 'Return the XOP\'s flags. | ||||||
| 1248 | |||||||
| 1249 | U32 XopFLAGS(XOP *xop)'},'Zero' => {'name' => 'Zero','text' => 'The XSUB-writer\'s interface to the C C |
||||||
| 1250 | destination, C |
||||||
| 1251 | |||||||
| 1252 | void Zero(void* dest, int nitems, type)'},'ZeroD' => {'name' => 'ZeroD','text' => 'Like C |
||||||
| 1253 | for encouraging compilers to tail-call | ||||||
| 1254 | optimise. | ||||||
| 1255 | |||||||
| 1256 | void * ZeroD(void* dest, int nitems, type)'},'alloccopstash' => {'name' => 'alloccopstash','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1257 | removed without notice. | ||||||
| 1258 | |||||||
| 1259 | |||||||
| 1260 | Available only under threaded builds, this function allocates an entry in | ||||||
| 1261 | C |
||||||
| 1262 | |||||||
| 1263 | PADOFFSET alloccopstash(HV *hv)'},'amagic_call' => {'name' => 'amagic_call','text' => ''},'amagic_deref_call' => {'name' => 'amagic_deref_call','text' => ''},'any_dup' => {'name' => 'any_dup','text' => ''},'atfork_lock' => {'name' => 'atfork_lock','text' => ''},'atfork_unlock' => {'name' => 'atfork_unlock','text' => ''},'av_arylen_p' => {'name' => 'av_arylen_p','text' => ''},'av_clear' => {'name' => 'av_clear','text' => 'Clears an array, making it empty. Does not free the memory the av uses to | ||||||
| 1264 | store its list of scalars. If any destructors are triggered as a result, | ||||||
| 1265 | the av itself may be freed when this function returns. | ||||||
| 1266 | |||||||
| 1267 | Perl equivalent: C<@myarray = ();>. | ||||||
| 1268 | |||||||
| 1269 | void av_clear(AV *av)'},'av_create_and_push' => {'name' => 'av_create_and_push','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1270 | removed without notice. | ||||||
| 1271 | |||||||
| 1272 | |||||||
| 1273 | Push an SV onto the end of the array, creating the array if necessary. | ||||||
| 1274 | A small internal helper function to remove a commonly duplicated idiom. | ||||||
| 1275 | |||||||
| 1276 | void av_create_and_push(AV **const avp, | ||||||
| 1277 | SV *const val)'},'av_create_and_unshift_one' => {'name' => 'av_create_and_unshift_one','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1278 | removed without notice. | ||||||
| 1279 | |||||||
| 1280 | |||||||
| 1281 | Unshifts an SV onto the beginning of the array, creating the array if | ||||||
| 1282 | necessary. | ||||||
| 1283 | A small internal helper function to remove a commonly duplicated idiom. | ||||||
| 1284 | |||||||
| 1285 | SV** av_create_and_unshift_one(AV **const avp, | ||||||
| 1286 | SV *const val)'},'av_delete' => {'name' => 'av_delete','text' => 'Deletes the element indexed by C |
||||||
| 1287 | and returns it. If C |
||||||
| 1288 | is returned. Perl equivalent: C |
||||||
| 1289 | non-C |
||||||
| 1290 | C |
||||||
| 1291 | |||||||
| 1292 | SV* av_delete(AV *av, SSize_t key, I32 flags)'},'av_exists' => {'name' => 'av_exists','text' => 'Returns true if the element indexed by C |
||||||
| 1293 | |||||||
| 1294 | This relies on the fact that uninitialized array elements are set to | ||||||
| 1295 | NULL. | ||||||
| 1296 | |||||||
| 1297 | Perl equivalent: C |
||||||
| 1298 | |||||||
| 1299 | bool av_exists(AV *av, SSize_t key)'},'av_extend' => {'name' => 'av_extend','text' => 'Pre-extend an array. The C |
||||||
| 1300 | extended. | ||||||
| 1301 | |||||||
| 1302 | void av_extend(AV *av, SSize_t key)'},'av_fetch' => {'name' => 'av_fetch','text' => 'Returns the SV at the specified index in the array. The C |
||||||
| 1303 | index. If lval is true, you are guaranteed to get a real SV back (in case | ||||||
| 1304 | it wasn\'t real before), which you can then modify. Check that the return | ||||||
| 1305 | value is non-null before dereferencing it to a C |
||||||
| 1306 | |||||||
| 1307 | See L |
||||||
| 1308 | more information on how to use this function on tied arrays. | ||||||
| 1309 | |||||||
| 1310 | The rough perl equivalent is C<$myarray[$idx]>. | ||||||
| 1311 | |||||||
| 1312 | SV** av_fetch(AV *av, SSize_t key, I32 lval)'},'av_fill' => {'name' => 'av_fill','text' => 'Set the highest index in the array to the given number, equivalent to | ||||||
| 1313 | Perl\'s C<$#array = $fill;>. | ||||||
| 1314 | |||||||
| 1315 | The number of elements in the array will be C |
||||||
| 1316 | av_fill() returns. If the array was previously shorter, then the | ||||||
| 1317 | additional elements appended are set to NULL. If the array | ||||||
| 1318 | was longer, then the excess elements are freed. C |
||||||
| 1319 | the same as C |
||||||
| 1320 | |||||||
| 1321 | void av_fill(AV *av, SSize_t fill)'},'av_iter_p' => {'name' => 'av_iter_p','text' => ''},'av_len' => {'name' => 'av_len','text' => 'Same as L. Note that, unlike what the name implies, it returns | ||||||
| 1322 | the highest index in the array, so to get the size of the array you need to use | ||||||
| 1323 | S |
||||||
| 1324 | expect. | ||||||
| 1325 | |||||||
| 1326 | SSize_t av_len(AV *av)'},'av_make' => {'name' => 'av_make','text' => 'Creates a new AV and populates it with a list of SVs. The SVs are copied | ||||||
| 1327 | into the array, so they may be freed after the call to av_make. The new AV | ||||||
| 1328 | will have a reference count of 1. | ||||||
| 1329 | |||||||
| 1330 | Perl equivalent: C |
||||||
| 1331 | |||||||
| 1332 | AV* av_make(SSize_t size, SV **strp)'},'av_pop' => {'name' => 'av_pop','text' => 'Removes one SV from the end of the array, reducing its size by one and | ||||||
| 1333 | returning the SV (transferring control of one reference count) to the | ||||||
| 1334 | caller. Returns C<&PL_sv_undef> if the array is empty. | ||||||
| 1335 | |||||||
| 1336 | Perl equivalent: C |
||||||
| 1337 | |||||||
| 1338 | SV* av_pop(AV *av)'},'av_push' => {'name' => 'av_push','text' => 'Pushes an SV onto the end of the array. The array will grow automatically | ||||||
| 1339 | to accommodate the addition. This takes ownership of one reference count. | ||||||
| 1340 | |||||||
| 1341 | Perl equivalent: C |
||||||
| 1342 | |||||||
| 1343 | void av_push(AV *av, SV *val)'},'av_shift' => {'name' => 'av_shift','text' => 'Removes one SV from the start of the array, reducing its size by one and | ||||||
| 1344 | returning the SV (transferring control of one reference count) to the | ||||||
| 1345 | caller. Returns C<&PL_sv_undef> if the array is empty. | ||||||
| 1346 | |||||||
| 1347 | Perl equivalent: C |
||||||
| 1348 | |||||||
| 1349 | SV* av_shift(AV *av)'},'av_store' => {'name' => 'av_store','text' => 'Stores an SV in an array. The array index is specified as C |
||||||
| 1350 | return value will be NULL if the operation failed or if the value did not | ||||||
| 1351 | need to be actually stored within the array (as in the case of tied | ||||||
| 1352 | arrays). Otherwise, it can be dereferenced | ||||||
| 1353 | to get the C |
||||||
| 1354 | there (= C |
||||||
| 1355 | |||||||
| 1356 | Note that the caller is responsible for suitably incrementing the reference | ||||||
| 1357 | count of C |
||||||
| 1358 | returned NULL. | ||||||
| 1359 | |||||||
| 1360 | Approximate Perl equivalent: C<$myarray[$key] = $val;>. | ||||||
| 1361 | |||||||
| 1362 | See L |
||||||
| 1363 | more information on how to use this function on tied arrays. | ||||||
| 1364 | |||||||
| 1365 | SV** av_store(AV *av, SSize_t key, SV *val)'},'av_tindex' => {'name' => 'av_tindex','text' => 'Same as C |
||||||
| 1366 | |||||||
| 1367 | int av_tindex(AV* av)'},'av_top_index' => {'name' => 'av_top_index','text' => 'Returns the highest index in the array. The number of elements in the | ||||||
| 1368 | array is C |
||||||
| 1369 | |||||||
| 1370 | The Perl equivalent for this is C<$#myarray>. | ||||||
| 1371 | |||||||
| 1372 | (A slightly shorter form is C |
||||||
| 1373 | |||||||
| 1374 | SSize_t av_top_index(AV *av)'},'av_undef' => {'name' => 'av_undef','text' => 'Undefines the array. Frees the memory used by the av to store its list of | ||||||
| 1375 | scalars. If any destructors are triggered as a result, the av itself may | ||||||
| 1376 | be freed. | ||||||
| 1377 | |||||||
| 1378 | void av_undef(AV *av)'},'av_unshift' => {'name' => 'av_unshift','text' => 'Unshift the given number of C |
||||||
| 1379 | array. The array will grow automatically to accommodate the addition. You | ||||||
| 1380 | must then use C |
||||||
| 1381 | |||||||
| 1382 | Perl equivalent: C |
||||||
| 1383 | |||||||
| 1384 | void av_unshift(AV *av, SSize_t num)'},'ax' => {'name' => 'ax','text' => 'Variable which is setup by C |
||||||
| 1385 | used by the C |
||||||
| 1386 | must be called prior to setup the C variable. | ||||||
| 1387 | |||||||
| 1388 | I32 ax'},'block_gimme' => {'name' => 'block_gimme','text' => ''},'blockhook_register' => {'name' => 'blockhook_register','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1389 | removed without notice. | ||||||
| 1390 | |||||||
| 1391 | |||||||
| 1392 | Register a set of hooks to be called when the Perl lexical scope changes | ||||||
| 1393 | at compile time. See L |
||||||
| 1394 | |||||||
| 1395 | NOTE: this function must be explicitly called as Perl_blockhook_register with an aTHX_ parameter. | ||||||
| 1396 | |||||||
| 1397 | void Perl_blockhook_register(pTHX_ BHK *hk)'},'boolSV' => {'name' => 'boolSV','text' => 'Returns a true SV if C is a true value, or a false SV if C is 0. | ||||||
| 1398 | |||||||
| 1399 | See also C |
||||||
| 1400 | |||||||
| 1401 | SV * boolSV(bool b)'},'bytes_cmp_utf8' => {'name' => 'bytes_cmp_utf8','text' => 'Compares the sequence of characters (stored as octets) in C, C |
||||||
| 1402 | sequence of characters (stored as UTF-8) | ||||||
| 1403 | in C, C |
||||||
| 1404 | equal, -1 or -2 if the first string is less than the second string, +1 or +2 | ||||||
| 1405 | if the first string is greater than the second string. | ||||||
| 1406 | |||||||
| 1407 | -1 or +1 is returned if the shorter string was identical to the start of the | ||||||
| 1408 | longer string. -2 or +2 is returned if | ||||||
| 1409 | there was a difference between characters | ||||||
| 1410 | within the strings. | ||||||
| 1411 | |||||||
| 1412 | int bytes_cmp_utf8(const U8 *b, STRLEN blen, | ||||||
| 1413 | const U8 *u, STRLEN ulen)'},'bytes_from_utf8' => {'name' => 'bytes_from_utf8','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1414 | removed without notice. | ||||||
| 1415 | |||||||
| 1416 | |||||||
| 1417 | Converts a string C |
||||||
| 1418 | Unlike L but like L, returns a pointer to | ||||||
| 1419 | the newly-created string, and updates C |
||||||
| 1420 | length. Returns the original string if no conversion occurs, C |
||||||
| 1421 | is unchanged. Do nothing if C |
||||||
| 1422 | 0 if C |
||||||
| 1423 | in utf8 (i.e., US-ASCII on non-EBCDIC machines). | ||||||
| 1424 | |||||||
| 1425 | U8* bytes_from_utf8(const U8 *s, STRLEN *len, | ||||||
| 1426 | bool *is_utf8)'},'bytes_to_utf8' => {'name' => 'bytes_to_utf8','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1427 | removed without notice. | ||||||
| 1428 | |||||||
| 1429 | |||||||
| 1430 | Converts a string C |
||||||
| 1431 | UTF-8. | ||||||
| 1432 | Returns a pointer to the newly-created string, and sets C |
||||||
| 1433 | reflect the new length in bytes. | ||||||
| 1434 | |||||||
| 1435 | A C |
||||||
| 1436 | |||||||
| 1437 | If you want to convert to UTF-8 from encodings other than | ||||||
| 1438 | the native (Latin1 or EBCDIC), | ||||||
| 1439 | see L(). | ||||||
| 1440 | |||||||
| 1441 | U8* bytes_to_utf8(const U8 *s, STRLEN *len)'},'call_argv' => {'name' => 'call_argv','text' => 'Performs a callback to the specified named and package-scoped Perl subroutine | ||||||
| 1442 | with C |
||||||
| 1443 | L |
||||||
| 1444 | |||||||
| 1445 | Approximate Perl equivalent: C<&{"$sub_name"}(@$argv)>. | ||||||
| 1446 | |||||||
| 1447 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 1448 | |||||||
| 1449 | I32 call_argv(const char* sub_name, I32 flags, | ||||||
| 1450 | char** argv)'},'call_atexit' => {'name' => 'call_atexit','text' => ''},'call_list' => {'name' => 'call_list','text' => ''},'call_method' => {'name' => 'call_method','text' => 'Performs a callback to the specified Perl method. The blessed object must | ||||||
| 1451 | be on the stack. See L |
||||||
| 1452 | |||||||
| 1453 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 1454 | |||||||
| 1455 | I32 call_method(const char* methname, I32 flags)'},'call_pv' => {'name' => 'call_pv','text' => 'Performs a callback to the specified Perl sub. See L |
||||||
| 1456 | |||||||
| 1457 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 1458 | |||||||
| 1459 | I32 call_pv(const char* sub_name, I32 flags)'},'call_sv' => {'name' => 'call_sv','text' => 'Performs a callback to the Perl sub whose name is in the SV. See | ||||||
| 1460 | L |
||||||
| 1461 | |||||||
| 1462 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 1463 | |||||||
| 1464 | I32 call_sv(SV* sv, VOL I32 flags)'},'caller_cx' => {'name' => 'caller_cx','text' => 'The XSUB-writer\'s equivalent of L |
||||||
| 1465 | returned C |
||||||
| 1466 | information returned to Perl by C |
||||||
| 1467 | stack frame, so C |
||||||
| 1468 | immediately-surrounding Perl code. | ||||||
| 1469 | |||||||
| 1470 | This function skips over the automatic calls to C<&DB::sub> made on the | ||||||
| 1471 | behalf of the debugger. If the stack frame requested was a sub called by | ||||||
| 1472 | C |
||||||
| 1473 | C |
||||||
| 1474 | site. If I |
||||||
| 1475 | frame for the sub call itself. | ||||||
| 1476 | |||||||
| 1477 | const PERL_CONTEXT * caller_cx( | ||||||
| 1478 | I32 level, | ||||||
| 1479 | const PERL_CONTEXT **dbcxp | ||||||
| 1480 | )'},'calloc' => {'name' => 'calloc','text' => ''},'cast_i32' => {'name' => 'cast_i32','text' => ''},'cast_iv' => {'name' => 'cast_iv','text' => ''},'cast_ulong' => {'name' => 'cast_ulong','text' => ''},'cast_uv' => {'name' => 'cast_uv','text' => ''},'ck_entersub_args_list' => {'name' => 'ck_entersub_args_list','text' => 'Performs the default fixup of the arguments part of an C |
||||||
| 1481 | op tree. This consists of applying list context to each of the | ||||||
| 1482 | argument ops. This is the standard treatment used on a call marked | ||||||
| 1483 | with C<&>, or a method call, or a call through a subroutine reference, | ||||||
| 1484 | or any other call where the callee can\'t be identified at compile time, | ||||||
| 1485 | or a call where the callee has no prototype. | ||||||
| 1486 | |||||||
| 1487 | OP * ck_entersub_args_list(OP *entersubop)'},'ck_entersub_args_proto' => {'name' => 'ck_entersub_args_proto','text' => 'Performs the fixup of the arguments part of an C |
||||||
| 1488 | based on a subroutine prototype. This makes various modifications to | ||||||
| 1489 | the argument ops, from applying context up to inserting C |
||||||
| 1490 | and checking the number and syntactic types of arguments, as directed by | ||||||
| 1491 | the prototype. This is the standard treatment used on a subroutine call, | ||||||
| 1492 | not marked with C<&>, where the callee can be identified at compile time | ||||||
| 1493 | and has a prototype. | ||||||
| 1494 | |||||||
| 1495 | I |
||||||
| 1496 | It may be a normal defined scalar, of which the string value will be used. | ||||||
| 1497 | Alternatively, for convenience, it may be a subroutine object (a C |
||||||
| 1498 | that has been cast to C |
||||||
| 1499 | supplied, in whichever form, does not need to match the actual callee | ||||||
| 1500 | referenced by the op tree. | ||||||
| 1501 | |||||||
| 1502 | If the argument ops disagree with the prototype, for example by having | ||||||
| 1503 | an unacceptable number of arguments, a valid op tree is returned anyway. | ||||||
| 1504 | The error is reflected in the parser state, normally resulting in a single | ||||||
| 1505 | exception at the top level of parsing which covers all the compilation | ||||||
| 1506 | errors that occurred. In the error message, the callee is referred to | ||||||
| 1507 | by the name defined by the I |
||||||
| 1508 | |||||||
| 1509 | OP * ck_entersub_args_proto(OP *entersubop, | ||||||
| 1510 | GV *namegv, SV *protosv)'},'ck_entersub_args_proto_or_list' => {'name' => 'ck_entersub_args_proto_or_list','text' => 'Performs the fixup of the arguments part of an C |
||||||
| 1511 | based on a subroutine prototype or using default list-context processing. | ||||||
| 1512 | This is the standard treatment used on a subroutine call, not marked | ||||||
| 1513 | with C<&>, where the callee can be identified at compile time. | ||||||
| 1514 | |||||||
| 1515 | I |
||||||
| 1516 | or indicates that there is no prototype. It may be a normal scalar, | ||||||
| 1517 | in which case if it is defined then the string value will be used | ||||||
| 1518 | as a prototype, and if it is undefined then there is no prototype. | ||||||
| 1519 | Alternatively, for convenience, it may be a subroutine object (a C |
||||||
| 1520 | that has been cast to C |
||||||
| 1521 | has one. The prototype (or lack thereof) supplied, in whichever form, | ||||||
| 1522 | does not need to match the actual callee referenced by the op tree. | ||||||
| 1523 | |||||||
| 1524 | If the argument ops disagree with the prototype, for example by having | ||||||
| 1525 | an unacceptable number of arguments, a valid op tree is returned anyway. | ||||||
| 1526 | The error is reflected in the parser state, normally resulting in a single | ||||||
| 1527 | exception at the top level of parsing which covers all the compilation | ||||||
| 1528 | errors that occurred. In the error message, the callee is referred to | ||||||
| 1529 | by the name defined by the I |
||||||
| 1530 | |||||||
| 1531 | OP * ck_entersub_args_proto_or_list(OP *entersubop, | ||||||
| 1532 | GV *namegv, | ||||||
| 1533 | SV *protosv)'},'ck_warner' => {'name' => 'ck_warner','text' => ''},'ck_warner_d' => {'name' => 'ck_warner_d','text' => ''},'ckwarn' => {'name' => 'ckwarn','text' => ''},'ckwarn_d' => {'name' => 'ckwarn_d','text' => ''},'clone_params_del' => {'name' => 'clone_params_del','text' => ''},'clone_params_new' => {'name' => 'clone_params_new','text' => ''},'cop_fetch_label' => {'name' => 'cop_fetch_label','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1534 | removed without notice. | ||||||
| 1535 | |||||||
| 1536 | |||||||
| 1537 | Returns the label attached to a cop. | ||||||
| 1538 | The flags pointer may be set to C |
||||||
| 1539 | |||||||
| 1540 | const char * cop_fetch_label(COP *const cop, | ||||||
| 1541 | STRLEN *len, U32 *flags)'},'cop_hints_2hv' => {'name' => 'cop_hints_2hv','text' => 'Generates and returns a standard Perl hash representing the full set of | ||||||
| 1542 | hint entries in the cop I |
||||||
| 1543 | be zero. | ||||||
| 1544 | |||||||
| 1545 | HV * cop_hints_2hv(const COP *cop, U32 flags)'},'cop_hints_fetch_pv' => {'name' => 'cop_hints_fetch_pv','text' => 'Like L, but takes a nul-terminated string instead | ||||||
| 1546 | of a string/length pair. | ||||||
| 1547 | |||||||
| 1548 | SV * cop_hints_fetch_pv(const COP *cop, | ||||||
| 1549 | const char *key, U32 hash, | ||||||
| 1550 | U32 flags)'},'cop_hints_fetch_pvn' => {'name' => 'cop_hints_fetch_pvn','text' => 'Look up the hint entry in the cop I |
||||||
| 1551 | I |
||||||
| 1552 | the key octets are interpreted as UTF-8, otherwise they are interpreted | ||||||
| 1553 | as Latin-1. I |
||||||
| 1554 | it has not been precomputed. Returns a mortal scalar copy of the value | ||||||
| 1555 | associated with the key, or C<&PL_sv_placeholder> if there is no value | ||||||
| 1556 | associated with the key. | ||||||
| 1557 | |||||||
| 1558 | SV * cop_hints_fetch_pvn(const COP *cop, | ||||||
| 1559 | const char *keypv, | ||||||
| 1560 | STRLEN keylen, U32 hash, | ||||||
| 1561 | U32 flags)'},'cop_hints_fetch_pvs' => {'name' => 'cop_hints_fetch_pvs','text' => 'Like L, but takes a literal string instead of a | ||||||
| 1562 | string/length pair, and no precomputed hash. | ||||||
| 1563 | |||||||
| 1564 | SV * cop_hints_fetch_pvs(const COP *cop, | ||||||
| 1565 | const char *key, U32 flags)'},'cop_hints_fetch_sv' => {'name' => 'cop_hints_fetch_sv','text' => 'Like L, but takes a Perl scalar instead of a | ||||||
| 1566 | string/length pair. | ||||||
| 1567 | |||||||
| 1568 | SV * cop_hints_fetch_sv(const COP *cop, SV *key, | ||||||
| 1569 | U32 hash, U32 flags)'},'cop_store_label' => {'name' => 'cop_store_label','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1570 | removed without notice. | ||||||
| 1571 | |||||||
| 1572 | |||||||
| 1573 | Save a label into a C |
||||||
| 1574 | You need to set flags to C |
||||||
| 1575 | for a utf-8 label. | ||||||
| 1576 | |||||||
| 1577 | void cop_store_label(COP *const cop, | ||||||
| 1578 | const char *label, STRLEN len, | ||||||
| 1579 | U32 flags)'},'cophh_2hv' => {'name' => 'cophh_2hv','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1580 | removed without notice. | ||||||
| 1581 | |||||||
| 1582 | |||||||
| 1583 | Generates and returns a standard Perl hash representing the full set of | ||||||
| 1584 | key/value pairs in the cop hints hash I |
||||||
| 1585 | unused and must be zero. | ||||||
| 1586 | |||||||
| 1587 | HV * cophh_2hv(const COPHH *cophh, U32 flags)'},'cophh_copy' => {'name' => 'cophh_copy','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1588 | removed without notice. | ||||||
| 1589 | |||||||
| 1590 | |||||||
| 1591 | Make and return a complete copy of the cop hints hash I |
||||||
| 1592 | |||||||
| 1593 | COPHH * cophh_copy(COPHH *cophh)'},'cophh_delete_pv' => {'name' => 'cophh_delete_pv','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1594 | removed without notice. | ||||||
| 1595 | |||||||
| 1596 | |||||||
| 1597 | Like L, but takes a nul-terminated string instead of | ||||||
| 1598 | a string/length pair. | ||||||
| 1599 | |||||||
| 1600 | COPHH * cophh_delete_pv(const COPHH *cophh, | ||||||
| 1601 | const char *key, U32 hash, | ||||||
| 1602 | U32 flags)'},'cophh_delete_pvn' => {'name' => 'cophh_delete_pvn','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1603 | removed without notice. | ||||||
| 1604 | |||||||
| 1605 | |||||||
| 1606 | Delete a key and its associated value from the cop hints hash I |
||||||
| 1607 | and returns the modified hash. The returned hash pointer is in general | ||||||
| 1608 | not the same as the hash pointer that was passed in. The input hash is | ||||||
| 1609 | consumed by the function, and the pointer to it must not be subsequently | ||||||
| 1610 | used. Use L if you need both hashes. | ||||||
| 1611 | |||||||
| 1612 | The key is specified by I |
||||||
| 1613 | C |
||||||
| 1614 | otherwise they are interpreted as Latin-1. I |
||||||
| 1615 | hash of the key string, or zero if it has not been precomputed. | ||||||
| 1616 | |||||||
| 1617 | COPHH * cophh_delete_pvn(COPHH *cophh, | ||||||
| 1618 | const char *keypv, | ||||||
| 1619 | STRLEN keylen, U32 hash, | ||||||
| 1620 | U32 flags)'},'cophh_delete_pvs' => {'name' => 'cophh_delete_pvs','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1621 | removed without notice. | ||||||
| 1622 | |||||||
| 1623 | |||||||
| 1624 | Like L, but takes a literal string instead of a | ||||||
| 1625 | string/length pair, and no precomputed hash. | ||||||
| 1626 | |||||||
| 1627 | COPHH * cophh_delete_pvs(const COPHH *cophh, | ||||||
| 1628 | const char *key, U32 flags)'},'cophh_delete_sv' => {'name' => 'cophh_delete_sv','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1629 | removed without notice. | ||||||
| 1630 | |||||||
| 1631 | |||||||
| 1632 | Like L, but takes a Perl scalar instead of a | ||||||
| 1633 | string/length pair. | ||||||
| 1634 | |||||||
| 1635 | COPHH * cophh_delete_sv(const COPHH *cophh, SV *key, | ||||||
| 1636 | U32 hash, U32 flags)'},'cophh_fetch_pv' => {'name' => 'cophh_fetch_pv','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1637 | removed without notice. | ||||||
| 1638 | |||||||
| 1639 | |||||||
| 1640 | Like L, but takes a nul-terminated string instead of | ||||||
| 1641 | a string/length pair. | ||||||
| 1642 | |||||||
| 1643 | SV * cophh_fetch_pv(const COPHH *cophh, | ||||||
| 1644 | const char *key, U32 hash, | ||||||
| 1645 | U32 flags)'},'cophh_fetch_pvn' => {'name' => 'cophh_fetch_pvn','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1646 | removed without notice. | ||||||
| 1647 | |||||||
| 1648 | |||||||
| 1649 | Look up the entry in the cop hints hash I |
||||||
| 1650 | I |
||||||
| 1651 | the key octets are interpreted as UTF-8, otherwise they are interpreted | ||||||
| 1652 | as Latin-1. I |
||||||
| 1653 | it has not been precomputed. Returns a mortal scalar copy of the value | ||||||
| 1654 | associated with the key, or C<&PL_sv_placeholder> if there is no value | ||||||
| 1655 | associated with the key. | ||||||
| 1656 | |||||||
| 1657 | SV * cophh_fetch_pvn(const COPHH *cophh, | ||||||
| 1658 | const char *keypv, | ||||||
| 1659 | STRLEN keylen, U32 hash, | ||||||
| 1660 | U32 flags)'},'cophh_fetch_pvs' => {'name' => 'cophh_fetch_pvs','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1661 | removed without notice. | ||||||
| 1662 | |||||||
| 1663 | |||||||
| 1664 | Like L, but takes a literal string instead of a | ||||||
| 1665 | string/length pair, and no precomputed hash. | ||||||
| 1666 | |||||||
| 1667 | SV * cophh_fetch_pvs(const COPHH *cophh, | ||||||
| 1668 | const char *key, U32 flags)'},'cophh_fetch_sv' => {'name' => 'cophh_fetch_sv','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1669 | removed without notice. | ||||||
| 1670 | |||||||
| 1671 | |||||||
| 1672 | Like L, but takes a Perl scalar instead of a | ||||||
| 1673 | string/length pair. | ||||||
| 1674 | |||||||
| 1675 | SV * cophh_fetch_sv(const COPHH *cophh, SV *key, | ||||||
| 1676 | U32 hash, U32 flags)'},'cophh_free' => {'name' => 'cophh_free','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1677 | removed without notice. | ||||||
| 1678 | |||||||
| 1679 | |||||||
| 1680 | Discard the cop hints hash I |
||||||
| 1681 | with it. | ||||||
| 1682 | |||||||
| 1683 | void cophh_free(COPHH *cophh)'},'cophh_new_empty' => {'name' => 'cophh_new_empty','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1684 | removed without notice. | ||||||
| 1685 | |||||||
| 1686 | |||||||
| 1687 | Generate and return a fresh cop hints hash containing no entries. | ||||||
| 1688 | |||||||
| 1689 | COPHH * cophh_new_empty()'},'cophh_store_pv' => {'name' => 'cophh_store_pv','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1690 | removed without notice. | ||||||
| 1691 | |||||||
| 1692 | |||||||
| 1693 | Like L, but takes a nul-terminated string instead of | ||||||
| 1694 | a string/length pair. | ||||||
| 1695 | |||||||
| 1696 | COPHH * cophh_store_pv(const COPHH *cophh, | ||||||
| 1697 | const char *key, U32 hash, | ||||||
| 1698 | SV *value, U32 flags)'},'cophh_store_pvn' => {'name' => 'cophh_store_pvn','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1699 | removed without notice. | ||||||
| 1700 | |||||||
| 1701 | |||||||
| 1702 | Stores a value, associated with a key, in the cop hints hash I |
||||||
| 1703 | and returns the modified hash. The returned hash pointer is in general | ||||||
| 1704 | not the same as the hash pointer that was passed in. The input hash is | ||||||
| 1705 | consumed by the function, and the pointer to it must not be subsequently | ||||||
| 1706 | used. Use L if you need both hashes. | ||||||
| 1707 | |||||||
| 1708 | The key is specified by I |
||||||
| 1709 | C |
||||||
| 1710 | otherwise they are interpreted as Latin-1. I |
||||||
| 1711 | hash of the key string, or zero if it has not been precomputed. | ||||||
| 1712 | |||||||
| 1713 | I |
||||||
| 1714 | by this function, which thus does not take ownership of any reference | ||||||
| 1715 | to it, and later changes to the scalar will not be reflected in the | ||||||
| 1716 | value visible in the cop hints hash. Complex types of scalar will not | ||||||
| 1717 | be stored with referential integrity, but will be coerced to strings. | ||||||
| 1718 | |||||||
| 1719 | COPHH * cophh_store_pvn(COPHH *cophh, const char *keypv, | ||||||
| 1720 | STRLEN keylen, U32 hash, | ||||||
| 1721 | SV *value, U32 flags)'},'cophh_store_pvs' => {'name' => 'cophh_store_pvs','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1722 | removed without notice. | ||||||
| 1723 | |||||||
| 1724 | |||||||
| 1725 | Like L, but takes a literal string instead of a | ||||||
| 1726 | string/length pair, and no precomputed hash. | ||||||
| 1727 | |||||||
| 1728 | COPHH * cophh_store_pvs(const COPHH *cophh, | ||||||
| 1729 | const char *key, SV *value, | ||||||
| 1730 | U32 flags)'},'cophh_store_sv' => {'name' => 'cophh_store_sv','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 1731 | removed without notice. | ||||||
| 1732 | |||||||
| 1733 | |||||||
| 1734 | Like L, but takes a Perl scalar instead of a | ||||||
| 1735 | string/length pair. | ||||||
| 1736 | |||||||
| 1737 | COPHH * cophh_store_sv(const COPHH *cophh, SV *key, | ||||||
| 1738 | U32 hash, SV *value, U32 flags)'},'croak' => {'name' => 'croak','text' => 'This is an XS interface to Perl\'s C |
||||||
| 1739 | |||||||
| 1740 | Take a sprintf-style format pattern and argument list. These are used to | ||||||
| 1741 | generate a string message. If the message does not end with a newline, | ||||||
| 1742 | then it will be extended with some indication of the current location | ||||||
| 1743 | in the code, as described for L. | ||||||
| 1744 | |||||||
| 1745 | The error message will be used as an exception, by default | ||||||
| 1746 | returning control to the nearest enclosing C |
||||||
| 1747 | modification by a C<$SIG{__DIE__}> handler. In any case, the C |
||||||
| 1748 | function never returns normally. | ||||||
| 1749 | |||||||
| 1750 | For historical reasons, if C |
||||||
| 1751 | (C<$@>) will be used as an error message or object instead of building an | ||||||
| 1752 | error message from arguments. If you want to throw a non-string object, | ||||||
| 1753 | or build an error message in an SV yourself, it is preferable to use | ||||||
| 1754 | the L function, which does not involve clobbering C |
||||||
| 1755 | |||||||
| 1756 | void croak(const char *pat, ...)'},'croak_memory_wrap' => {'name' => 'croak_memory_wrap','text' => ''},'croak_no_modify' => {'name' => 'croak_no_modify','text' => 'Exactly equivalent to C |
||||||
| 1757 | terser object code than using C |
||||||
| 1758 | paths reduces CPU cache pressure. | ||||||
| 1759 | |||||||
| 1760 | void croak_no_modify()'},'croak_nocontext' => {'name' => 'croak_nocontext','text' => ''},'croak_sv' => {'name' => 'croak_sv','text' => 'This is an XS interface to Perl\'s C |
||||||
| 1761 | |||||||
| 1762 | C |
||||||
| 1763 | will be used as-is. Otherwise it is used as a string, and if it does | ||||||
| 1764 | not end with a newline then it will be extended with some indication of | ||||||
| 1765 | the current location in the code, as described for L. | ||||||
| 1766 | |||||||
| 1767 | The error message or object will be used as an exception, by default | ||||||
| 1768 | returning control to the nearest enclosing C |
||||||
| 1769 | modification by a C<$SIG{__DIE__}> handler. In any case, the C |
||||||
| 1770 | function never returns normally. | ||||||
| 1771 | |||||||
| 1772 | To die with a simple string message, the L function may be | ||||||
| 1773 | more convenient. | ||||||
| 1774 | |||||||
| 1775 | void croak_sv(SV *baseex)'},'croak_xs_usage' => {'name' => 'croak_xs_usage','text' => 'A specialised variant of C |
||||||
| 1776 | |||||||
| 1777 | croak_xs_usage(cv, "eee_yow"); | ||||||
| 1778 | |||||||
| 1779 | works out the package name and subroutine name from C |
||||||
| 1780 | C |
||||||
| 1781 | |||||||
| 1782 | Perl_croak(aTHX_ "Usage: %"SVf"::%"SVf"(%s)", "ouch" "awk", "eee_yow"); | ||||||
| 1783 | |||||||
| 1784 | void croak_xs_usage(const CV *const cv, | ||||||
| 1785 | const char *const params)'},'csighandler' => {'name' => 'csighandler','text' => ''},'custom_op_desc' => {'name' => 'custom_op_desc','text' => 'Return the description of a given custom op. This was once used by the | ||||||
| 1786 | OP_DESC macro, but is no longer: it has only been kept for | ||||||
| 1787 | compatibility, and should not be used. | ||||||
| 1788 | |||||||
| 1789 | const char * custom_op_desc(const OP *o)'},'custom_op_name' => {'name' => 'custom_op_name','text' => 'Return the name for a given custom op. This was once used by the OP_NAME | ||||||
| 1790 | macro, but is no longer: it has only been kept for compatibility, and | ||||||
| 1791 | should not be used. | ||||||
| 1792 | |||||||
| 1793 | const char * custom_op_name(const OP *o)'},'custom_op_register' => {'name' => 'custom_op_register','text' => 'Register a custom op. See L |
||||||
| 1794 | |||||||
| 1795 | NOTE: this function must be explicitly called as Perl_custom_op_register with an aTHX_ parameter. | ||||||
| 1796 | |||||||
| 1797 | void Perl_custom_op_register(pTHX_ | ||||||
| 1798 | Perl_ppaddr_t ppaddr, | ||||||
| 1799 | const XOP *xop)'},'custom_op_xop' => {'name' => 'custom_op_xop','text' => 'Return the XOP structure for a given custom op. This macro should be | ||||||
| 1800 | considered internal to OP_NAME and the other access macros: use them instead. | ||||||
| 1801 | This macro does call a function. Prior | ||||||
| 1802 | to 5.19.6, this was implemented as a | ||||||
| 1803 | function. | ||||||
| 1804 | |||||||
| 1805 | NOTE: this function must be explicitly called as Perl_custom_op_xop with an aTHX_ parameter. | ||||||
| 1806 | |||||||
| 1807 | const XOP * Perl_custom_op_xop(pTHX_ const OP *o)'},'cv_clone' => {'name' => 'cv_clone','text' => 'Clone a CV, making a lexical closure. I |
||||||
| 1808 | of the function: its code, pad structure, and other attributes. | ||||||
| 1809 | The prototype is combined with a capture of outer lexicals to which the | ||||||
| 1810 | code refers, which are taken from the currently-executing instance of | ||||||
| 1811 | the immediately surrounding code. | ||||||
| 1812 | |||||||
| 1813 | CV * cv_clone(CV *proto)'},'cv_const_sv' => {'name' => 'cv_const_sv','text' => 'If C |
||||||
| 1814 | value returned by the sub. Otherwise, returns NULL. | ||||||
| 1815 | |||||||
| 1816 | Constant subs can be created with C |
||||||
| 1817 | L |
||||||
| 1818 | |||||||
| 1819 | SV* cv_const_sv(const CV *const cv)'},'cv_get_call_checker' => {'name' => 'cv_get_call_checker','text' => 'Retrieves the function that will be used to fix up a call to I |
||||||
| 1820 | Specifically, the function is applied to an C |
||||||
| 1821 | subroutine call, not marked with C<&>, where the callee can be identified | ||||||
| 1822 | at compile time as I |
||||||
| 1823 | |||||||
| 1824 | The C-level function pointer is returned in I<*ckfun_p>, and an SV | ||||||
| 1825 | argument for it is returned in I<*ckobj_p>. The function is intended | ||||||
| 1826 | to be called in this manner: | ||||||
| 1827 | |||||||
| 1828 | entersubop = (*ckfun_p)(aTHX_ entersubop, namegv, (*ckobj_p)); | ||||||
| 1829 | |||||||
| 1830 | In this call, I |
||||||
| 1831 | which may be replaced by the check function, and I |
||||||
| 1832 | supplying the name that should be used by the check function to refer | ||||||
| 1833 | to the callee of the C |
||||||
| 1834 | It is permitted to apply the check function in non-standard situations, | ||||||
| 1835 | such as to a call to a different subroutine or to a method call. | ||||||
| 1836 | |||||||
| 1837 | By default, the function is | ||||||
| 1838 | L |
||||||
| 1839 | and the SV parameter is I |
||||||
| 1840 | prototype processing. It can be changed, for a particular subroutine, | ||||||
| 1841 | by L. | ||||||
| 1842 | |||||||
| 1843 | void cv_get_call_checker(CV *cv, | ||||||
| 1844 | Perl_call_checker *ckfun_p, | ||||||
| 1845 | SV **ckobj_p)'},'cv_set_call_checker' => {'name' => 'cv_set_call_checker','text' => 'Sets the function that will be used to fix up a call to I |
||||||
| 1846 | Specifically, the function is applied to an C |
||||||
| 1847 | subroutine call, not marked with C<&>, where the callee can be identified | ||||||
| 1848 | at compile time as I |
||||||
| 1849 | |||||||
| 1850 | The C-level function pointer is supplied in I |
||||||
| 1851 | for it is supplied in I |
||||||
| 1852 | |||||||
| 1853 | STATIC OP * ckfun(pTHX_ OP *op, GV *namegv, SV *ckobj) | ||||||
| 1854 | |||||||
| 1855 | It is intended to be called in this manner: | ||||||
| 1856 | |||||||
| 1857 | entersubop = ckfun(aTHX_ entersubop, namegv, ckobj); | ||||||
| 1858 | |||||||
| 1859 | In this call, I |
||||||
| 1860 | which may be replaced by the check function, and I |
||||||
| 1861 | supplying the name that should be used by the check function to refer | ||||||
| 1862 | to the callee of the C |
||||||
| 1863 | It is permitted to apply the check function in non-standard situations, | ||||||
| 1864 | such as to a call to a different subroutine or to a method call. | ||||||
| 1865 | |||||||
| 1866 | The current setting for a particular CV can be retrieved by | ||||||
| 1867 | L. | ||||||
| 1868 | |||||||
| 1869 | void cv_set_call_checker(CV *cv, | ||||||
| 1870 | Perl_call_checker ckfun, | ||||||
| 1871 | SV *ckobj)'},'cv_undef' => {'name' => 'cv_undef','text' => 'Clear out all the active components of a CV. This can happen either | ||||||
| 1872 | by an explicit C |
||||||
| 1873 | In the former case, we keep the CvOUTSIDE pointer, so that any anonymous | ||||||
| 1874 | children can still follow the full lexical scope chain. | ||||||
| 1875 | |||||||
| 1876 | void cv_undef(CV* cv)'},'cx_dump' => {'name' => 'cx_dump','text' => ''},'cx_dup' => {'name' => 'cx_dup','text' => ''},'cxinc' => {'name' => 'cxinc','text' => ''},'dAX' => {'name' => 'dAX','text' => 'Sets up the C |
||||||
| 1877 | This is usually handled automatically by C |
||||||
| 1878 | |||||||
| 1879 | dAX;'},'dAXMARK' => {'name' => 'dAXMARK','text' => 'Sets up the C |
||||||
| 1880 | This is usually handled automatically by C |
||||||
| 1881 | |||||||
| 1882 | dAXMARK;'},'dITEMS' => {'name' => 'dITEMS','text' => 'Sets up the C |
||||||
| 1883 | This is usually handled automatically by C |
||||||
| 1884 | |||||||
| 1885 | dITEMS;'},'dMARK' => {'name' => 'dMARK','text' => 'Declare a stack marker variable, C, for the XSUB. See C and | ||||||
| 1886 | C |
||||||
| 1887 | |||||||
| 1888 | dMARK;'},'dMULTICALL' => {'name' => 'dMULTICALL','text' => 'Declare local variables for a multicall. See L |
||||||
| 1889 | |||||||
| 1890 | dMULTICALL;'},'dORIGMARK' => {'name' => 'dORIGMARK','text' => 'Saves the original stack mark for the XSUB. See C |
||||||
| 1891 | |||||||
| 1892 | dORIGMARK;'},'dSP' => {'name' => 'dSP','text' => 'Declares a local copy of perl\'s stack pointer for the XSUB, available via | ||||||
| 1893 | the C |
||||||
| 1894 | |||||||
| 1895 | dSP;'},'dUNDERBAR' => {'name' => 'dUNDERBAR','text' => 'Sets up any variable needed by the C |
||||||
| 1896 | C |
||||||
| 1897 | to still use it for ensuring past and future compatibility. | ||||||
| 1898 | |||||||
| 1899 | dUNDERBAR;'},'dXCPT' => {'name' => 'dXCPT','text' => 'Set up necessary local variables for exception handling. | ||||||
| 1900 | See L |
||||||
| 1901 | |||||||
| 1902 | dXCPT;'},'dXSARGS' => {'name' => 'dXSARGS','text' => 'Sets up stack and mark pointers for an XSUB, calling dSP and dMARK. | ||||||
| 1903 | Sets up the C |
||||||
| 1904 | This is usually handled automatically by C |
||||||
| 1905 | |||||||
| 1906 | dXSARGS;'},'dXSI32' => {'name' => 'dXSI32','text' => 'Sets up the C |
||||||
| 1907 | handled automatically by C |
||||||
| 1908 | |||||||
| 1909 | dXSI32;'},'deb' => {'name' => 'deb','text' => ''},'deb_nocontext' => {'name' => 'deb_nocontext','text' => ''},'debop' => {'name' => 'debop','text' => ''},'debprofdump' => {'name' => 'debprofdump','text' => ''},'debstack' => {'name' => 'debstack','text' => ''},'debstackptrs' => {'name' => 'debstackptrs','text' => ''},'delimcpy' => {'name' => 'delimcpy','text' => ''},'despatch_signals' => {'name' => 'despatch_signals','text' => ''},'die' => {'name' => 'die','text' => 'Behaves the same as L, except for the return type. | ||||||
| 1910 | It should be used only where the C |
||||||
| 1911 | The function never actually returns. | ||||||
| 1912 | |||||||
| 1913 | OP * die(const char *pat, ...)'},'die_nocontext' => {'name' => 'die_nocontext','text' => ''},'die_sv' => {'name' => 'die_sv','text' => 'Behaves the same as L, except for the return type. | ||||||
| 1914 | It should be used only where the C |
||||||
| 1915 | The function never actually returns. | ||||||
| 1916 | |||||||
| 1917 | OP * die_sv(SV *baseex)'},'dirp_dup' => {'name' => 'dirp_dup','text' => ''},'do_aspawn' => {'name' => 'do_aspawn','text' => ''},'do_binmode' => {'name' => 'do_binmode','text' => ''},'do_close' => {'name' => 'do_close','text' => ''},'do_gv_dump' => {'name' => 'do_gv_dump','text' => ''},'do_gvgv_dump' => {'name' => 'do_gvgv_dump','text' => ''},'do_hv_dump' => {'name' => 'do_hv_dump','text' => ''},'do_join' => {'name' => 'do_join','text' => ''},'do_magic_dump' => {'name' => 'do_magic_dump','text' => ''},'do_op_dump' => {'name' => 'do_op_dump','text' => ''},'do_open' => {'name' => 'do_open','text' => ''},'do_open9' => {'name' => 'do_open9','text' => ''},'do_openn' => {'name' => 'do_openn','text' => ''},'do_pmop_dump' => {'name' => 'do_pmop_dump','text' => ''},'do_spawn' => {'name' => 'do_spawn','text' => ''},'do_spawn_nowait' => {'name' => 'do_spawn_nowait','text' => ''},'do_sprintf' => {'name' => 'do_sprintf','text' => ''},'do_sv_dump' => {'name' => 'do_sv_dump','text' => ''},'doing_taint' => {'name' => 'doing_taint','text' => ''},'doref' => {'name' => 'doref','text' => ''},'dounwind' => {'name' => 'dounwind','text' => ''},'dowantarray' => {'name' => 'dowantarray','text' => ''},'dump_all' => {'name' => 'dump_all','text' => 'Dumps the entire optree of the current program starting at C |
||||||
| 1918 | C |
||||||
| 1919 | C |
||||||
| 1920 | |||||||
| 1921 | void dump_all()'},'dump_eval' => {'name' => 'dump_eval','text' => ''},'dump_form' => {'name' => 'dump_form','text' => ''},'dump_indent' => {'name' => 'dump_indent','text' => ''},'dump_mstats' => {'name' => 'dump_mstats','text' => ''},'dump_packsubs' => {'name' => 'dump_packsubs','text' => 'Dumps the optrees for all visible subroutines in C |
||||||
| 1922 | |||||||
| 1923 | void dump_packsubs(const HV* stash)'},'dump_sub' => {'name' => 'dump_sub','text' => ''},'dump_vindent' => {'name' => 'dump_vindent','text' => ''},'eval_pv' => {'name' => 'eval_pv','text' => 'Tells Perl to C |
||||||
| 1924 | |||||||
| 1925 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 1926 | |||||||
| 1927 | SV* eval_pv(const char* p, I32 croak_on_error)'},'eval_sv' => {'name' => 'eval_sv','text' => 'Tells Perl to C |
||||||
| 1928 | as C |
||||||
| 1929 | |||||||
| 1930 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 1931 | |||||||
| 1932 | I32 eval_sv(SV* sv, I32 flags)'},'fbm_compile' => {'name' => 'fbm_compile','text' => 'Analyses the string in order to make fast searches on it using fbm_instr() | ||||||
| 1933 | -- the Boyer-Moore algorithm. | ||||||
| 1934 | |||||||
| 1935 | void fbm_compile(SV* sv, U32 flags)'},'fbm_instr' => {'name' => 'fbm_instr','text' => 'Returns the location of the SV in the string delimited by C and | ||||||
| 1936 | C |
||||||
| 1937 | does not have to be fbm_compiled, but the search will not be as fast | ||||||
| 1938 | then. | ||||||
| 1939 | |||||||
| 1940 | char* fbm_instr(unsigned char* big, | ||||||
| 1941 | unsigned char* bigend, SV* littlestr, | ||||||
| 1942 | U32 flags)'},'filter_add' => {'name' => 'filter_add','text' => ''},'filter_del' => {'name' => 'filter_del','text' => ''},'filter_read' => {'name' => 'filter_read','text' => ''},'find_runcv' => {'name' => 'find_runcv','text' => 'Locate the CV corresponding to the currently executing sub or eval. | ||||||
| 1943 | If db_seqp is non_null, skip CVs that are in the DB package and populate | ||||||
| 1944 | *db_seqp with the cop sequence number at the point that the DB:: code was | ||||||
| 1945 | entered. (This allows debuggers to eval in the scope of the breakpoint | ||||||
| 1946 | rather than in the scope of the debugger itself.) | ||||||
| 1947 | |||||||
| 1948 | CV* find_runcv(U32 *db_seqp)'},'find_rundefsv' => {'name' => 'find_rundefsv','text' => 'Find and return the variable that is named C<$_> in the lexical scope | ||||||
| 1949 | of the currently-executing function. This may be a lexical C<$_>, | ||||||
| 1950 | or will otherwise be the global one. | ||||||
| 1951 | |||||||
| 1952 | SV * find_rundefsv()'},'find_rundefsvoffset' => {'name' => 'find_rundefsvoffset','text' => 'DEPRECATED! It is planned to remove this function from a | ||||||
| 1953 | future release of Perl. Do not use it for new code; remove it from | ||||||
| 1954 | existing code. | ||||||
| 1955 | |||||||
| 1956 | |||||||
| 1957 | Find the position of the lexical C<$_> in the pad of the | ||||||
| 1958 | currently-executing function. Returns the offset in the current pad, | ||||||
| 1959 | or C |
||||||
| 1960 | the global one should be used instead). | ||||||
| 1961 | L is likely to be more convenient. | ||||||
| 1962 | |||||||
| 1963 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 1964 | |||||||
| 1965 | PADOFFSET find_rundefsvoffset()'},'foldEQ' => {'name' => 'foldEQ','text' => 'Returns true if the leading len bytes of the strings s1 and s2 are the same | ||||||
| 1966 | case-insensitively; false otherwise. Uppercase and lowercase ASCII range bytes | ||||||
| 1967 | match themselves and their opposite case counterparts. Non-cased and non-ASCII | ||||||
| 1968 | range bytes match only themselves. | ||||||
| 1969 | |||||||
| 1970 | I32 foldEQ(const char* a, const char* b, I32 len)'},'foldEQ_latin1' => {'name' => 'foldEQ_latin1','text' => ''},'foldEQ_locale' => {'name' => 'foldEQ_locale','text' => 'Returns true if the leading len bytes of the strings s1 and s2 are the same | ||||||
| 1971 | case-insensitively in the current locale; false otherwise. | ||||||
| 1972 | |||||||
| 1973 | I32 foldEQ_locale(const char* a, const char* b, | ||||||
| 1974 | I32 len)'},'foldEQ_utf8' => {'name' => 'foldEQ_utf8','text' => 'Returns true if the leading portions of the strings C |
||||||
| 1975 | of which may be in UTF-8) are the same case-insensitively; false otherwise. | ||||||
| 1976 | How far into the strings to compare is determined by other input parameters. | ||||||
| 1977 | |||||||
| 1978 | If C |
||||||
| 1979 | otherwise it is assumed to be in native 8-bit encoding. Correspondingly for C |
||||||
| 1980 | with respect to C |
||||||
| 1981 | |||||||
| 1982 | If the byte length C |
||||||
| 1983 | equality. In other words, C |
||||||
| 1984 | scan will not be considered to be a match unless the goal is reached, and | ||||||
| 1985 | scanning won\'t continue past that goal. Correspondingly for C |
||||||
| 1986 | C |
||||||
| 1987 | |||||||
| 1988 | If C |
||||||
| 1989 | considered an end pointer to the position 1 byte past the maximum point | ||||||
| 1990 | in C |
||||||
| 1991 | (This routine assumes that UTF-8 encoded input strings are not malformed; | ||||||
| 1992 | malformed input can cause it to read past C |
||||||
| 1993 | This means that if both C |
||||||
| 1994 | is less than C |
||||||
| 1995 | never | ||||||
| 1996 | get as far as its goal (and in fact is asserted against). Correspondingly for | ||||||
| 1997 | C |
||||||
| 1998 | |||||||
| 1999 | At least one of C |
||||||
| 2000 | C |
||||||
| 2001 | reached for a successful match. Also, if the fold of a character is multiple | ||||||
| 2002 | characters, all of them must be matched (see tr21 reference below for | ||||||
| 2003 | \'folding\'). | ||||||
| 2004 | |||||||
| 2005 | Upon a successful match, if C |
||||||
| 2006 | it will be set to point to the beginning of the I |
||||||
| 2007 | beyond what was matched. Correspondingly for C |
||||||
| 2008 | |||||||
| 2009 | For case-insensitiveness, the "casefolding" of Unicode is used | ||||||
| 2010 | instead of upper/lowercasing both the characters, see | ||||||
| 2011 | L |
||||||
| 2012 | |||||||
| 2013 | I32 foldEQ_utf8(const char *s1, char **pe1, UV l1, | ||||||
| 2014 | bool u1, const char *s2, char **pe2, | ||||||
| 2015 | UV l2, bool u2)'},'form' => {'name' => 'form','text' => 'Takes a sprintf-style format pattern and conventional | ||||||
| 2016 | (non-SV) arguments and returns the formatted string. | ||||||
| 2017 | |||||||
| 2018 | (char *) Perl_form(pTHX_ const char* pat, ...) | ||||||
| 2019 | |||||||
| 2020 | can be used any place a string (char *) is required: | ||||||
| 2021 | |||||||
| 2022 | char * s = Perl_form("%d.%d",major,minor); | ||||||
| 2023 | |||||||
| 2024 | Uses a single private buffer so if you want to format several strings you | ||||||
| 2025 | must explicitly copy the earlier strings away (and free the copies when you | ||||||
| 2026 | are done). | ||||||
| 2027 | |||||||
| 2028 | char* form(const char* pat, ...)'},'form_nocontext' => {'name' => 'form_nocontext','text' => ''},'fp_dup' => {'name' => 'fp_dup','text' => ''},'fprintf_nocontext' => {'name' => 'fprintf_nocontext','text' => ''},'free_global_struct' => {'name' => 'free_global_struct','text' => ''},'free_tmps' => {'name' => 'free_tmps','text' => ''},'get_av' => {'name' => 'get_av','text' => 'Returns the AV of the specified Perl global or package array with the given | ||||||
| 2029 | name (so it won\'t work on lexical variables). C |
||||||
| 2030 | to C |
||||||
| 2031 | Perl variable does not exist then it will be created. If C |
||||||
| 2032 | and the variable does not exist then NULL is returned. | ||||||
| 2033 | |||||||
| 2034 | Perl equivalent: C<@{"$name"}>. | ||||||
| 2035 | |||||||
| 2036 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 2037 | |||||||
| 2038 | AV* get_av(const char *name, I32 flags)'},'get_context' => {'name' => 'get_context','text' => ''},'get_cv' => {'name' => 'get_cv','text' => 'Uses C |
||||||
| 2039 | |||||||
| 2040 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 2041 | |||||||
| 2042 | CV* get_cv(const char* name, I32 flags)'},'get_cvn_flags' => {'name' => 'get_cvn_flags','text' => 'Returns the CV of the specified Perl subroutine. C |
||||||
| 2043 | C |
||||||
| 2044 | exist then it will be declared (which has the same effect as saying | ||||||
| 2045 | C). If C |
||||||
| 2046 | then NULL is returned. | ||||||
| 2047 | |||||||
| 2048 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 2049 | |||||||
| 2050 | CV* get_cvn_flags(const char* name, STRLEN len, | ||||||
| 2051 | I32 flags)'},'get_hv' => {'name' => 'get_hv','text' => 'Returns the HV of the specified Perl hash. C |
||||||
| 2052 | C |
||||||
| 2053 | Perl variable does not exist then it will be created. If C |
||||||
| 2054 | and the variable does not exist then NULL is returned. | ||||||
| 2055 | |||||||
| 2056 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 2057 | |||||||
| 2058 | HV* get_hv(const char *name, I32 flags)'},'get_mstats' => {'name' => 'get_mstats','text' => ''},'get_op_descs' => {'name' => 'get_op_descs','text' => ''},'get_op_names' => {'name' => 'get_op_names','text' => ''},'get_ppaddr' => {'name' => 'get_ppaddr','text' => ''},'get_sv' => {'name' => 'get_sv','text' => 'Returns the SV of the specified Perl scalar. C |
||||||
| 2059 | C |
||||||
| 2060 | Perl variable does not exist then it will be created. If C |
||||||
| 2061 | and the variable does not exist then NULL is returned. | ||||||
| 2062 | |||||||
| 2063 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 2064 | |||||||
| 2065 | SV* get_sv(const char *name, I32 flags)'},'get_vtbl' => {'name' => 'get_vtbl','text' => ''},'getcwd_sv' => {'name' => 'getcwd_sv','text' => 'Fill the sv with current working directory | ||||||
| 2066 | |||||||
| 2067 | int getcwd_sv(SV* sv)'},'gp_dup' => {'name' => 'gp_dup','text' => ''},'gp_free' => {'name' => 'gp_free','text' => ''},'gp_ref' => {'name' => 'gp_ref','text' => ''},'grok_bin' => {'name' => 'grok_bin','text' => 'converts a string representing a binary number to numeric form. | ||||||
| 2068 | |||||||
| 2069 | On entry I |
||||||
| 2070 | conversion flags, and I |
||||||
| 2071 | The scan stops at the end of the string, or the first invalid character. | ||||||
| 2072 | Unless C |
||||||
| 2073 | invalid character will also trigger a warning. | ||||||
| 2074 | On return I<*len> is set to the length of the scanned string, | ||||||
| 2075 | and I<*flags> gives output flags. | ||||||
| 2076 | |||||||
| 2077 | If the value is <= C |
||||||
| 2078 | and nothing is written to I<*result>. If the value is > UV_MAX C |
||||||
| 2079 | returns UV_MAX, sets C |
||||||
| 2080 | and writes the value to I<*result> (or the value is discarded if I |
||||||
| 2081 | is NULL). | ||||||
| 2082 | |||||||
| 2083 | The binary number may optionally be prefixed with "0b" or "b" unless | ||||||
| 2084 | C |
||||||
| 2085 | C |
||||||
| 2086 | number may use \'_\' characters to separate digits. | ||||||
| 2087 | |||||||
| 2088 | UV grok_bin(const char* start, STRLEN* len_p, | ||||||
| 2089 | I32* flags, NV *result)'},'grok_hex' => {'name' => 'grok_hex','text' => 'converts a string representing a hex number to numeric form. | ||||||
| 2090 | |||||||
| 2091 | On entry I |
||||||
| 2092 | conversion flags, and I |
||||||
| 2093 | The scan stops at the end of the string, or the first invalid character. | ||||||
| 2094 | Unless C |
||||||
| 2095 | invalid character will also trigger a warning. | ||||||
| 2096 | On return I<*len> is set to the length of the scanned string, | ||||||
| 2097 | and I<*flags> gives output flags. | ||||||
| 2098 | |||||||
| 2099 | If the value is <= UV_MAX it is returned as a UV, the output flags are clear, | ||||||
| 2100 | and nothing is written to I<*result>. If the value is > UV_MAX C |
||||||
| 2101 | returns UV_MAX, sets C |
||||||
| 2102 | and writes the value to I<*result> (or the value is discarded if I |
||||||
| 2103 | is NULL). | ||||||
| 2104 | |||||||
| 2105 | The hex number may optionally be prefixed with "0x" or "x" unless | ||||||
| 2106 | C |
||||||
| 2107 | C |
||||||
| 2108 | number may use \'_\' characters to separate digits. | ||||||
| 2109 | |||||||
| 2110 | UV grok_hex(const char* start, STRLEN* len_p, | ||||||
| 2111 | I32* flags, NV *result)'},'grok_number' => {'name' => 'grok_number','text' => 'Recognise (or not) a number. The type of the number is returned | ||||||
| 2112 | (0 if unrecognised), otherwise it is a bit-ORed combination of | ||||||
| 2113 | IS_NUMBER_IN_UV, IS_NUMBER_GREATER_THAN_UV_MAX, IS_NUMBER_NOT_INT, | ||||||
| 2114 | IS_NUMBER_NEG, IS_NUMBER_INFINITY, IS_NUMBER_NAN (defined in perl.h). | ||||||
| 2115 | |||||||
| 2116 | If the value of the number can fit in a UV, it is returned in the *valuep | ||||||
| 2117 | IS_NUMBER_IN_UV will be set to indicate that *valuep is valid, IS_NUMBER_IN_UV | ||||||
| 2118 | will never be set unless *valuep is valid, but *valuep may have been assigned | ||||||
| 2119 | to during processing even though IS_NUMBER_IN_UV is not set on return. | ||||||
| 2120 | If valuep is NULL, IS_NUMBER_IN_UV will be set for the same cases as when | ||||||
| 2121 | valuep is non-NULL, but no actual assignment (or SEGV) will occur. | ||||||
| 2122 | |||||||
| 2123 | IS_NUMBER_NOT_INT will be set with IS_NUMBER_IN_UV if trailing decimals were | ||||||
| 2124 | seen (in which case *valuep gives the true value truncated to an integer), and | ||||||
| 2125 | IS_NUMBER_NEG if the number is negative (in which case *valuep holds the | ||||||
| 2126 | absolute value). IS_NUMBER_IN_UV is not set if e notation was used or the | ||||||
| 2127 | number is larger than a UV. | ||||||
| 2128 | |||||||
| 2129 | int grok_number(const char *pv, STRLEN len, | ||||||
| 2130 | UV *valuep)'},'grok_numeric_radix' => {'name' => 'grok_numeric_radix','text' => 'Scan and skip for a numeric decimal separator (radix). | ||||||
| 2131 | |||||||
| 2132 | bool grok_numeric_radix(const char **sp, | ||||||
| 2133 | const char *send)'},'grok_oct' => {'name' => 'grok_oct','text' => 'converts a string representing an octal number to numeric form. | ||||||
| 2134 | |||||||
| 2135 | On entry I |
||||||
| 2136 | conversion flags, and I |
||||||
| 2137 | The scan stops at the end of the string, or the first invalid character. | ||||||
| 2138 | Unless C |
||||||
| 2139 | 8 or 9 will also trigger a warning. | ||||||
| 2140 | On return I<*len> is set to the length of the scanned string, | ||||||
| 2141 | and I<*flags> gives output flags. | ||||||
| 2142 | |||||||
| 2143 | If the value is <= UV_MAX it is returned as a UV, the output flags are clear, | ||||||
| 2144 | and nothing is written to I<*result>. If the value is > UV_MAX C |
||||||
| 2145 | returns UV_MAX, sets C |
||||||
| 2146 | and writes the value to I<*result> (or the value is discarded if I |
||||||
| 2147 | is NULL). | ||||||
| 2148 | |||||||
| 2149 | If C |
||||||
| 2150 | number may use \'_\' characters to separate digits. | ||||||
| 2151 | |||||||
| 2152 | UV grok_oct(const char* start, STRLEN* len_p, | ||||||
| 2153 | I32* flags, NV *result)'},'gv_AVadd' => {'name' => 'gv_AVadd','text' => ''},'gv_HVadd' => {'name' => 'gv_HVadd','text' => ''},'gv_IOadd' => {'name' => 'gv_IOadd','text' => ''},'gv_SVadd' => {'name' => 'gv_SVadd','text' => ''},'gv_add_by_type' => {'name' => 'gv_add_by_type','text' => ''},'gv_autoload4' => {'name' => 'gv_autoload4','text' => ''},'gv_autoload_pv' => {'name' => 'gv_autoload_pv','text' => ''},'gv_autoload_pvn' => {'name' => 'gv_autoload_pvn','text' => ''},'gv_autoload_sv' => {'name' => 'gv_autoload_sv','text' => ''},'gv_check' => {'name' => 'gv_check','text' => ''},'gv_const_sv' => {'name' => 'gv_const_sv','text' => 'If C |
||||||
| 2154 | inlining, or C |
||||||
| 2155 | a typeglob, then returns the value returned by the sub. Otherwise, returns | ||||||
| 2156 | NULL. | ||||||
| 2157 | |||||||
| 2158 | SV* gv_const_sv(GV* gv)'},'gv_dump' => {'name' => 'gv_dump','text' => ''},'gv_efullname' => {'name' => 'gv_efullname','text' => ''},'gv_efullname3' => {'name' => 'gv_efullname3','text' => ''},'gv_efullname4' => {'name' => 'gv_efullname4','text' => ''},'gv_fetchfile' => {'name' => 'gv_fetchfile','text' => ''},'gv_fetchfile_flags' => {'name' => 'gv_fetchfile_flags','text' => ''},'gv_fetchmeth' => {'name' => 'gv_fetchmeth','text' => 'Like L, but lacks a flags parameter. | ||||||
| 2159 | |||||||
| 2160 | GV* gv_fetchmeth(HV* stash, const char* name, | ||||||
| 2161 | STRLEN len, I32 level)'},'gv_fetchmeth_autoload' => {'name' => 'gv_fetchmeth_autoload','text' => 'This is the old form of L, which has no flags | ||||||
| 2162 | parameter. | ||||||
| 2163 | |||||||
| 2164 | GV* gv_fetchmeth_autoload(HV* stash, | ||||||
| 2165 | const char* name, | ||||||
| 2166 | STRLEN len, I32 level)'},'gv_fetchmeth_pv' => {'name' => 'gv_fetchmeth_pv','text' => 'Exactly like L, but takes a nul-terminated string | ||||||
| 2167 | instead of a string/length pair. | ||||||
| 2168 | |||||||
| 2169 | GV* gv_fetchmeth_pv(HV* stash, const char* name, | ||||||
| 2170 | I32 level, U32 flags)'},'gv_fetchmeth_pv_autoload' => {'name' => 'gv_fetchmeth_pv_autoload','text' => 'Exactly like L, but takes a nul-terminated string | ||||||
| 2171 | instead of a string/length pair. | ||||||
| 2172 | |||||||
| 2173 | GV* gv_fetchmeth_pv_autoload(HV* stash, | ||||||
| 2174 | const char* name, | ||||||
| 2175 | I32 level, U32 flags)'},'gv_fetchmeth_pvn' => {'name' => 'gv_fetchmeth_pvn','text' => 'Returns the glob with the given C |
||||||
| 2176 | C |
||||||
| 2177 | accessible via @ISA and UNIVERSAL::. | ||||||
| 2178 | |||||||
| 2179 | The argument C |
||||||
| 2180 | side-effect creates a glob with the given C |
||||||
| 2181 | which in the case of success contains an alias for the subroutine, and sets | ||||||
| 2182 | up caching info for this glob. | ||||||
| 2183 | |||||||
| 2184 | The only significant values for C |
||||||
| 2185 | |||||||
| 2186 | GV_SUPER indicates that we want to look up the method in the superclasses | ||||||
| 2187 | of the C |
||||||
| 2188 | |||||||
| 2189 | The | ||||||
| 2190 | GV returned from C |
||||||
| 2191 | visible to Perl code. So when calling C |
||||||
| 2192 | the GV directly; instead, you should use the method\'s CV, which can be | ||||||
| 2193 | obtained from the GV with the C |
||||||
| 2194 | |||||||
| 2195 | GV* gv_fetchmeth_pvn(HV* stash, const char* name, | ||||||
| 2196 | STRLEN len, I32 level, | ||||||
| 2197 | U32 flags)'},'gv_fetchmeth_pvn_autoload' => {'name' => 'gv_fetchmeth_pvn_autoload','text' => 'Same as gv_fetchmeth_pvn(), but looks for autoloaded subroutines too. | ||||||
| 2198 | Returns a glob for the subroutine. | ||||||
| 2199 | |||||||
| 2200 | For an autoloaded subroutine without a GV, will create a GV even | ||||||
| 2201 | if C |
||||||
| 2202 | of the result may be zero. | ||||||
| 2203 | |||||||
| 2204 | Currently, the only significant value for C |
||||||
| 2205 | |||||||
| 2206 | GV* gv_fetchmeth_pvn_autoload(HV* stash, | ||||||
| 2207 | const char* name, | ||||||
| 2208 | STRLEN len, I32 level, | ||||||
| 2209 | U32 flags)'},'gv_fetchmeth_sv' => {'name' => 'gv_fetchmeth_sv','text' => 'Exactly like L, but takes the name string in the form | ||||||
| 2210 | of an SV instead of a string/length pair. | ||||||
| 2211 | |||||||
| 2212 | GV* gv_fetchmeth_sv(HV* stash, SV* namesv, | ||||||
| 2213 | I32 level, U32 flags)'},'gv_fetchmeth_sv_autoload' => {'name' => 'gv_fetchmeth_sv_autoload','text' => 'Exactly like L, but takes the name string in the form | ||||||
| 2214 | of an SV instead of a string/length pair. | ||||||
| 2215 | |||||||
| 2216 | GV* gv_fetchmeth_sv_autoload(HV* stash, SV* namesv, | ||||||
| 2217 | I32 level, U32 flags)'},'gv_fetchmethod' => {'name' => 'gv_fetchmethod','text' => 'See L. | ||||||
| 2218 | |||||||
| 2219 | GV* gv_fetchmethod(HV* stash, const char* name)'},'gv_fetchmethod_autoload' => {'name' => 'gv_fetchmethod_autoload','text' => 'Returns the glob which contains the subroutine to call to invoke the method | ||||||
| 2220 | on the C |
||||||
| 2221 | glob for "AUTOLOAD". In this case the corresponding variable $AUTOLOAD is | ||||||
| 2222 | already setup. | ||||||
| 2223 | |||||||
| 2224 | The third parameter of C |
||||||
| 2225 | AUTOLOAD lookup is performed if the given method is not present: non-zero | ||||||
| 2226 | means yes, look for AUTOLOAD; zero means no, don\'t look for AUTOLOAD. | ||||||
| 2227 | Calling C |
||||||
| 2228 | with a non-zero C |
||||||
| 2229 | |||||||
| 2230 | These functions grant C<"SUPER"> token | ||||||
| 2231 | as a prefix of the method name. Note | ||||||
| 2232 | that if you want to keep the returned glob for a long time, you need to | ||||||
| 2233 | check for it being "AUTOLOAD", since at the later time the call may load a | ||||||
| 2234 | different subroutine due to $AUTOLOAD changing its value. Use the glob | ||||||
| 2235 | created as a side effect to do this. | ||||||
| 2236 | |||||||
| 2237 | These functions have the same side-effects as C |
||||||
| 2238 | C |
||||||
| 2239 | C |
||||||
| 2240 | |||||||
| 2241 | GV* gv_fetchmethod_autoload(HV* stash, | ||||||
| 2242 | const char* name, | ||||||
| 2243 | I32 autoload)'},'gv_fetchpv' => {'name' => 'gv_fetchpv','text' => ''},'gv_fetchpvn_flags' => {'name' => 'gv_fetchpvn_flags','text' => ''},'gv_fetchsv' => {'name' => 'gv_fetchsv','text' => ''},'gv_fullname' => {'name' => 'gv_fullname','text' => ''},'gv_fullname3' => {'name' => 'gv_fullname3','text' => ''},'gv_fullname4' => {'name' => 'gv_fullname4','text' => ''},'gv_handler' => {'name' => 'gv_handler','text' => ''},'gv_init' => {'name' => 'gv_init','text' => 'The old form of gv_init_pvn(). It does not work with UTF8 strings, as it | ||||||
| 2244 | has no flags parameter. If the C |
||||||
| 2245 | GV_ADDMULTI flag will be passed to gv_init_pvn(). | ||||||
| 2246 | |||||||
| 2247 | void gv_init(GV* gv, HV* stash, const char* name, | ||||||
| 2248 | STRLEN len, int multi)'},'gv_init_pv' => {'name' => 'gv_init_pv','text' => 'Same as gv_init_pvn(), but takes a nul-terminated string for the name | ||||||
| 2249 | instead of separate char * and length parameters. | ||||||
| 2250 | |||||||
| 2251 | void gv_init_pv(GV* gv, HV* stash, const char* name, | ||||||
| 2252 | U32 flags)'},'gv_init_pvn' => {'name' => 'gv_init_pvn','text' => 'Converts a scalar into a typeglob. This is an incoercible typeglob; | ||||||
| 2253 | assigning a reference to it will assign to one of its slots, instead of | ||||||
| 2254 | overwriting it as happens with typeglobs created by SvSetSV. Converting | ||||||
| 2255 | any scalar that is SvOK() may produce unpredictable results and is reserved | ||||||
| 2256 | for perl\'s internal use. | ||||||
| 2257 | |||||||
| 2258 | C |
||||||
| 2259 | |||||||
| 2260 | C |
||||||
| 2261 | |||||||
| 2262 | C |
||||||
| 2263 | that is, it must not include the package name. If C |
||||||
| 2264 | stash element, it is the caller\'s responsibility to ensure that the name | ||||||
| 2265 | passed to this function matches the name of the element. If it does not | ||||||
| 2266 | match, perl\'s internal bookkeeping will get out of sync. | ||||||
| 2267 | |||||||
| 2268 | C |
||||||
| 2269 | the return value of SvUTF8(sv). It can also take the | ||||||
| 2270 | GV_ADDMULTI flag, which means to pretend that the GV has been | ||||||
| 2271 | seen before (i.e., suppress "Used once" warnings). | ||||||
| 2272 | |||||||
| 2273 | void gv_init_pvn(GV* gv, HV* stash, const char* name, | ||||||
| 2274 | STRLEN len, U32 flags)'},'gv_init_sv' => {'name' => 'gv_init_sv','text' => 'Same as gv_init_pvn(), but takes an SV * for the name instead of separate | ||||||
| 2275 | char * and length parameters. C |
||||||
| 2276 | |||||||
| 2277 | void gv_init_sv(GV* gv, HV* stash, SV* namesv, | ||||||
| 2278 | U32 flags)'},'gv_name_set' => {'name' => 'gv_name_set','text' => ''},'gv_stashpv' => {'name' => 'gv_stashpv','text' => 'Returns a pointer to the stash for a specified package. Uses C |
||||||
| 2279 | determine the length of C |
||||||
| 2280 | |||||||
| 2281 | HV* gv_stashpv(const char* name, I32 flags)'},'gv_stashpvn' => {'name' => 'gv_stashpvn','text' => 'Returns a pointer to the stash for a specified package. The C |
||||||
| 2282 | parameter indicates the length of the C |
||||||
| 2283 | to C |
||||||
| 2284 | created if it does not already exist. If the package does not exist and | ||||||
| 2285 | C |
||||||
| 2286 | is returned. | ||||||
| 2287 | |||||||
| 2288 | Flags may be one of: | ||||||
| 2289 | |||||||
| 2290 | GV_ADD | ||||||
| 2291 | SVf_UTF8 | ||||||
| 2292 | GV_NOADD_NOINIT | ||||||
| 2293 | GV_NOINIT | ||||||
| 2294 | GV_NOEXPAND | ||||||
| 2295 | GV_ADDMG | ||||||
| 2296 | |||||||
| 2297 | The most important of which are probably GV_ADD and SVf_UTF8. | ||||||
| 2298 | |||||||
| 2299 | HV* gv_stashpvn(const char* name, U32 namelen, | ||||||
| 2300 | I32 flags)'},'gv_stashpvs' => {'name' => 'gv_stashpvs','text' => 'Like C |
||||||
| 2301 | |||||||
| 2302 | HV* gv_stashpvs(const char* name, I32 create)'},'gv_stashsv' => {'name' => 'gv_stashsv','text' => 'Returns a pointer to the stash for a specified package. See C |
||||||
| 2303 | |||||||
| 2304 | HV* gv_stashsv(SV* sv, I32 flags)'},'he_dup' => {'name' => 'he_dup','text' => ''},'hek_dup' => {'name' => 'hek_dup','text' => ''},'hv_assert' => {'name' => 'hv_assert','text' => 'Check that a hash is in an internally consistent state. | ||||||
| 2305 | |||||||
| 2306 | void hv_assert(HV *hv)'},'hv_clear' => {'name' => 'hv_clear','text' => 'Frees the all the elements of a hash, leaving it empty. | ||||||
| 2307 | The XS equivalent of C<%hash = ()>. See also L. | ||||||
| 2308 | |||||||
| 2309 | If any destructors are triggered as a result, the hv itself may | ||||||
| 2310 | be freed. | ||||||
| 2311 | |||||||
| 2312 | void hv_clear(HV *hv)'},'hv_clear_placeholders' => {'name' => 'hv_clear_placeholders','text' => 'Clears any placeholders from a hash. If a restricted hash has any of its keys | ||||||
| 2313 | marked as readonly and the key is subsequently deleted, the key is not actually | ||||||
| 2314 | deleted but is marked by assigning it a value of &PL_sv_placeholder. This tags | ||||||
| 2315 | it so it will be ignored by future operations such as iterating over the hash, | ||||||
| 2316 | but will still allow the hash to have a value reassigned to the key at some | ||||||
| 2317 | future point. This function clears any such placeholder keys from the hash. | ||||||
| 2318 | See Hash::Util::lock_keys() for an example of its use. | ||||||
| 2319 | |||||||
| 2320 | void hv_clear_placeholders(HV *hv)'},'hv_common' => {'name' => 'hv_common','text' => ''},'hv_common_key_len' => {'name' => 'hv_common_key_len','text' => ''},'hv_copy_hints_hv' => {'name' => 'hv_copy_hints_hv','text' => 'A specialised version of L for copying C<%^H>. I |
||||||
| 2321 | a pointer to a hash (which may have C<%^H> magic, but should be generally | ||||||
| 2322 | non-magical), or C |
||||||
| 2323 | of I |
||||||
| 2324 | added to it. A pointer to the new hash is returned. | ||||||
| 2325 | |||||||
| 2326 | HV * hv_copy_hints_hv(HV *ohv)'},'hv_delayfree_ent' => {'name' => 'hv_delayfree_ent','text' => ''},'hv_delete' => {'name' => 'hv_delete','text' => 'Deletes a key/value pair in the hash. The value\'s SV is removed from | ||||||
| 2327 | the hash, made mortal, and returned to the caller. The absolute | ||||||
| 2328 | value of C |
||||||
| 2329 | key is assumed to be in UTF-8-encoded Unicode. The C |
||||||
| 2330 | will normally be zero; if set to G_DISCARD then NULL will be returned. | ||||||
| 2331 | NULL will also be returned if the key is not found. | ||||||
| 2332 | |||||||
| 2333 | SV* hv_delete(HV *hv, const char *key, I32 klen, | ||||||
| 2334 | I32 flags)'},'hv_delete_ent' => {'name' => 'hv_delete_ent','text' => 'Deletes a key/value pair in the hash. The value SV is removed from the hash, | ||||||
| 2335 | made mortal, and returned to the caller. The C |
||||||
| 2336 | zero; if set to G_DISCARD then NULL will be returned. NULL will also be | ||||||
| 2337 | returned if the key is not found. C |
||||||
| 2338 | value, or 0 to ask for it to be computed. | ||||||
| 2339 | |||||||
| 2340 | SV* hv_delete_ent(HV *hv, SV *keysv, I32 flags, | ||||||
| 2341 | U32 hash)'},'hv_eiter_p' => {'name' => 'hv_eiter_p','text' => ''},'hv_eiter_set' => {'name' => 'hv_eiter_set','text' => ''},'hv_exists' => {'name' => 'hv_exists','text' => 'Returns a boolean indicating whether the specified hash key exists. The | ||||||
| 2342 | absolute value of C |
||||||
| 2343 | negative the key is assumed to be in UTF-8-encoded Unicode. | ||||||
| 2344 | |||||||
| 2345 | bool hv_exists(HV *hv, const char *key, I32 klen)'},'hv_exists_ent' => {'name' => 'hv_exists_ent','text' => 'Returns a boolean indicating whether | ||||||
| 2346 | the specified hash key exists. C |
||||||
| 2347 | can be a valid precomputed hash value, or 0 to ask for it to be | ||||||
| 2348 | computed. | ||||||
| 2349 | |||||||
| 2350 | bool hv_exists_ent(HV *hv, SV *keysv, U32 hash)'},'hv_fetch' => {'name' => 'hv_fetch','text' => 'Returns the SV which corresponds to the specified key in the hash. | ||||||
| 2351 | The absolute value of C |
||||||
| 2352 | negative the key is assumed to be in UTF-8-encoded Unicode. If | ||||||
| 2353 | C |
||||||
| 2354 | there is no value in the hash associated with the given key, then one is | ||||||
| 2355 | created and a pointer to it is returned. The C |
||||||
| 2356 | assigned to. But always check that the | ||||||
| 2357 | return value is non-null before dereferencing it to an C |
||||||
| 2358 | |||||||
| 2359 | See L |
||||||
| 2360 | information on how to use this function on tied hashes. | ||||||
| 2361 | |||||||
| 2362 | SV** hv_fetch(HV *hv, const char *key, I32 klen, | ||||||
| 2363 | I32 lval)'},'hv_fetch_ent' => {'name' => 'hv_fetch_ent','text' => 'Returns the hash entry which corresponds to the specified key in the hash. | ||||||
| 2364 | C |
||||||
| 2365 | if you want the function to compute it. IF C |
||||||
| 2366 | will be part of a store. Make sure the return value is non-null before | ||||||
| 2367 | accessing it. The return value when C |
||||||
| 2368 | static location, so be sure to make a copy of the structure if you need to | ||||||
| 2369 | store it somewhere. | ||||||
| 2370 | |||||||
| 2371 | See L |
||||||
| 2372 | information on how to use this function on tied hashes. | ||||||
| 2373 | |||||||
| 2374 | HE* hv_fetch_ent(HV *hv, SV *keysv, I32 lval, | ||||||
| 2375 | U32 hash)'},'hv_fetchs' => {'name' => 'hv_fetchs','text' => 'Like C |
||||||
| 2376 | |||||||
| 2377 | SV** hv_fetchs(HV* tb, const char* key, I32 lval)'},'hv_fill' => {'name' => 'hv_fill','text' => 'Returns the number of hash buckets that | ||||||
| 2378 | happen to be in use. This function is | ||||||
| 2379 | wrapped by the macro C |
||||||
| 2380 | |||||||
| 2381 | Previously this value was always stored in the HV structure, which created an | ||||||
| 2382 | overhead on every hash (and pretty much every object) for something that was | ||||||
| 2383 | rarely used. Now we calculate it on demand the first | ||||||
| 2384 | time that it is needed, and cache it if that calculation | ||||||
| 2385 | is going to be costly to repeat. The cached | ||||||
| 2386 | value is updated by insertions and deletions, but (currently) discarded if | ||||||
| 2387 | the hash is split. | ||||||
| 2388 | |||||||
| 2389 | STRLEN hv_fill(HV *const hv)'},'hv_free_ent' => {'name' => 'hv_free_ent','text' => ''},'hv_iterinit' => {'name' => 'hv_iterinit','text' => 'Prepares a starting point to traverse a hash table. Returns the number of | ||||||
| 2390 | keys in the hash (i.e. the same as C |
||||||
| 2391 | currently only meaningful for hashes without tie magic. | ||||||
| 2392 | |||||||
| 2393 | NOTE: Before version 5.004_65, C |
||||||
| 2394 | hash buckets that happen to be in use. If you still need that esoteric | ||||||
| 2395 | value, you can get it through the macro C |
||||||
| 2396 | |||||||
| 2397 | |||||||
| 2398 | I32 hv_iterinit(HV *hv)'},'hv_iterkey' => {'name' => 'hv_iterkey','text' => 'Returns the key from the current position of the hash iterator. See | ||||||
| 2399 | C |
||||||
| 2400 | |||||||
| 2401 | char* hv_iterkey(HE* entry, I32* retlen)'},'hv_iterkeysv' => {'name' => 'hv_iterkeysv','text' => 'Returns the key as an C |
||||||
| 2402 | iterator. The return value will always be a mortal copy of the key. Also | ||||||
| 2403 | see C |
||||||
| 2404 | |||||||
| 2405 | SV* hv_iterkeysv(HE* entry)'},'hv_iternext' => {'name' => 'hv_iternext','text' => 'Returns entries from a hash iterator. See C |
||||||
| 2406 | |||||||
| 2407 | You may call C |
||||||
| 2408 | iterator currently points to, without losing your place or invalidating your | ||||||
| 2409 | iterator. Note that in this case the current entry is deleted from the hash | ||||||
| 2410 | with your iterator holding the last reference to it. Your iterator is flagged | ||||||
| 2411 | to free the entry on the next call to C |
||||||
| 2412 | your iterator immediately else the entry will leak - call C |
||||||
| 2413 | trigger the resource deallocation. | ||||||
| 2414 | |||||||
| 2415 | HE* hv_iternext(HV *hv)'},'hv_iternext_flags' => {'name' => 'hv_iternext_flags','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2416 | removed without notice. | ||||||
| 2417 | |||||||
| 2418 | |||||||
| 2419 | Returns entries from a hash iterator. See C |
||||||
| 2420 | The C |
||||||
| 2421 | set the placeholders keys (for restricted hashes) will be returned in addition | ||||||
| 2422 | to normal keys. By default placeholders are automatically skipped over. | ||||||
| 2423 | Currently a placeholder is implemented with a value that is | ||||||
| 2424 | C<&PL_sv_placeholder>. Note that the implementation of placeholders and | ||||||
| 2425 | restricted hashes may change, and the implementation currently is | ||||||
| 2426 | insufficiently abstracted for any change to be tidy. | ||||||
| 2427 | |||||||
| 2428 | HE* hv_iternext_flags(HV *hv, I32 flags)'},'hv_iternextsv' => {'name' => 'hv_iternextsv','text' => 'Performs an C |
||||||
| 2429 | operation. | ||||||
| 2430 | |||||||
| 2431 | SV* hv_iternextsv(HV *hv, char **key, I32 *retlen)'},'hv_iterval' => {'name' => 'hv_iterval','text' => 'Returns the value from the current position of the hash iterator. See | ||||||
| 2432 | C |
||||||
| 2433 | |||||||
| 2434 | SV* hv_iterval(HV *hv, HE *entry)'},'hv_ksplit' => {'name' => 'hv_ksplit','text' => ''},'hv_magic' => {'name' => 'hv_magic','text' => 'Adds magic to a hash. See C |
||||||
| 2435 | |||||||
| 2436 | void hv_magic(HV *hv, GV *gv, int how)'},'hv_name_set' => {'name' => 'hv_name_set','text' => ''},'hv_placeholders_get' => {'name' => 'hv_placeholders_get','text' => ''},'hv_placeholders_set' => {'name' => 'hv_placeholders_set','text' => ''},'hv_rand_set' => {'name' => 'hv_rand_set','text' => ''},'hv_riter_p' => {'name' => 'hv_riter_p','text' => ''},'hv_riter_set' => {'name' => 'hv_riter_set','text' => ''},'hv_scalar' => {'name' => 'hv_scalar','text' => 'Evaluates the hash in scalar context and returns the result. Handles magic | ||||||
| 2437 | when the hash is tied. | ||||||
| 2438 | |||||||
| 2439 | SV* hv_scalar(HV *hv)'},'hv_store' => {'name' => 'hv_store','text' => 'Stores an SV in a hash. The hash key is specified as C |
||||||
| 2440 | absolute value of C |
||||||
| 2441 | negative the key is assumed to be in UTF-8-encoded Unicode. The | ||||||
| 2442 | C |
||||||
| 2443 | Perl will compute it. | ||||||
| 2444 | |||||||
| 2445 | The return value will be | ||||||
| 2446 | NULL if the operation failed or if the value did not need to be actually | ||||||
| 2447 | stored within the hash (as in the case of tied hashes). Otherwise it can | ||||||
| 2448 | be dereferenced to get the original C |
||||||
| 2449 | responsible for suitably incrementing the reference count of C |
||||||
| 2450 | the call, and decrementing it if the function returned NULL. Effectively | ||||||
| 2451 | a successful hv_store takes ownership of one reference to C |
||||||
| 2452 | usually what you want; a newly created SV has a reference count of one, so | ||||||
| 2453 | if all your code does is create SVs then store them in a hash, hv_store | ||||||
| 2454 | will own the only reference to the new SV, and your code doesn\'t need to do | ||||||
| 2455 | anything further to tidy up. hv_store is not implemented as a call to | ||||||
| 2456 | hv_store_ent, and does not create a temporary SV for the key, so if your | ||||||
| 2457 | key data is not already in SV form then use hv_store in preference to | ||||||
| 2458 | hv_store_ent. | ||||||
| 2459 | |||||||
| 2460 | See L |
||||||
| 2461 | information on how to use this function on tied hashes. | ||||||
| 2462 | |||||||
| 2463 | SV** hv_store(HV *hv, const char *key, I32 klen, | ||||||
| 2464 | SV *val, U32 hash)'},'hv_store_ent' => {'name' => 'hv_store_ent','text' => 'Stores C |
||||||
| 2465 | parameter is the precomputed hash value; if it is zero then Perl will | ||||||
| 2466 | compute it. The return value is the new hash entry so created. It will be | ||||||
| 2467 | NULL if the operation failed or if the value did not need to be actually | ||||||
| 2468 | stored within the hash (as in the case of tied hashes). Otherwise the | ||||||
| 2469 | contents of the return value can be accessed using the C |
||||||
| 2470 | described here. Note that the caller is responsible for suitably | ||||||
| 2471 | incrementing the reference count of C |
||||||
| 2472 | decrementing it if the function returned NULL. Effectively a successful | ||||||
| 2473 | hv_store_ent takes ownership of one reference to C |
||||||
| 2474 | usually what you want; a newly created SV has a reference count of one, so | ||||||
| 2475 | if all your code does is create SVs then store them in a hash, hv_store | ||||||
| 2476 | will own the only reference to the new SV, and your code doesn\'t need to do | ||||||
| 2477 | anything further to tidy up. Note that hv_store_ent only reads the C |
||||||
| 2478 | unlike C |
||||||
| 2479 | reference count on C |
||||||
| 2480 | is not implemented as a call to hv_store_ent, and does not create a temporary | ||||||
| 2481 | SV for the key, so if your key data is not already in SV form then use | ||||||
| 2482 | hv_store in preference to hv_store_ent. | ||||||
| 2483 | |||||||
| 2484 | See L |
||||||
| 2485 | information on how to use this function on tied hashes. | ||||||
| 2486 | |||||||
| 2487 | HE* hv_store_ent(HV *hv, SV *key, SV *val, U32 hash)'},'hv_stores' => {'name' => 'hv_stores','text' => 'Like C |
||||||
| 2488 | and omits the hash parameter. | ||||||
| 2489 | |||||||
| 2490 | SV** hv_stores(HV* tb, const char* key, | ||||||
| 2491 | NULLOK SV* val)'},'hv_undef' => {'name' => 'hv_undef','text' => 'Undefines the hash. The XS equivalent of C |
||||||
| 2492 | |||||||
| 2493 | As well as freeing all the elements of the hash (like hv_clear()), this | ||||||
| 2494 | also frees any auxiliary data and storage associated with the hash. | ||||||
| 2495 | |||||||
| 2496 | If any destructors are triggered as a result, the hv itself may | ||||||
| 2497 | be freed. | ||||||
| 2498 | |||||||
| 2499 | See also L. | ||||||
| 2500 | |||||||
| 2501 | void hv_undef(HV *hv)'},'ibcmp' => {'name' => 'ibcmp','text' => 'This is a synonym for (! foldEQ()) | ||||||
| 2502 | |||||||
| 2503 | I32 ibcmp(const char* a, const char* b, I32 len)'},'ibcmp_locale' => {'name' => 'ibcmp_locale','text' => 'This is a synonym for (! foldEQ_locale()) | ||||||
| 2504 | |||||||
| 2505 | I32 ibcmp_locale(const char* a, const char* b, | ||||||
| 2506 | I32 len)'},'ibcmp_utf8' => {'name' => 'ibcmp_utf8','text' => 'This is a synonym for (! foldEQ_utf8()) | ||||||
| 2507 | |||||||
| 2508 | I32 ibcmp_utf8(const char *s1, char **pe1, UV l1, | ||||||
| 2509 | bool u1, const char *s2, char **pe2, | ||||||
| 2510 | UV l2, bool u2)'},'init_global_struct' => {'name' => 'init_global_struct','text' => ''},'init_stacks' => {'name' => 'init_stacks','text' => ''},'init_tm' => {'name' => 'init_tm','text' => ''},'instr' => {'name' => 'instr','text' => ''},'isALPHA' => {'name' => 'isALPHA','text' => 'Returns a boolean indicating whether the specified character is an | ||||||
| 2511 | alphabetic character, analogous to C |
||||||
| 2512 | See the L |
||||||
| 2513 | C |
||||||
| 2514 | C |
||||||
| 2515 | |||||||
| 2516 | bool isALPHA(char ch)'},'isALPHANUMERIC' => {'name' => 'isALPHANUMERIC','text' => 'Returns a boolean indicating whether the specified character is a either an | ||||||
| 2517 | alphabetic character or decimal digit, analogous to C |
||||||
| 2518 | See the L |
||||||
| 2519 | C |
||||||
| 2520 | C |
||||||
| 2521 | C |
||||||
| 2522 | |||||||
| 2523 | bool isALPHANUMERIC(char ch)'},'isASCII' => {'name' => 'isASCII','text' => 'Returns a boolean indicating whether the specified character is one of the 128 | ||||||
| 2524 | characters in the ASCII character set, analogous to C |
||||||
| 2525 | On non-ASCII platforms, it returns TRUE iff this | ||||||
| 2526 | character corresponds to an ASCII character. Variants C |
||||||
| 2527 | C |
||||||
| 2528 | See the L |
||||||
| 2529 | C |
||||||
| 2530 | C |
||||||
| 2531 | library routine C |
||||||
| 2532 | C |
||||||
| 2533 | |||||||
| 2534 | Also note, that because all ASCII characters are UTF-8 invariant (meaning they | ||||||
| 2535 | have the exact same representation (always a single byte) whether encoded in | ||||||
| 2536 | UTF-8 or not), C |
||||||
| 2537 | byte in any string encoded or not in UTF-8. And similarly C |
||||||
| 2538 | work properly on any string encoded or not in UTF-8. | ||||||
| 2539 | |||||||
| 2540 | bool isASCII(char ch)'},'isBLANK' => {'name' => 'isBLANK','text' => 'Returns a boolean indicating whether the specified character is a | ||||||
| 2541 | character considered to be a blank, analogous to C |
||||||
| 2542 | See the L |
||||||
| 2543 | C |
||||||
| 2544 | C |
||||||
| 2545 | platforms do not have the C library routine C |
||||||
| 2546 | variants whose names contain C |
||||||
| 2547 | without. | ||||||
| 2548 | |||||||
| 2549 | bool isBLANK(char ch)'},'isCNTRL' => {'name' => 'isCNTRL','text' => 'Returns a boolean indicating whether the specified character is a | ||||||
| 2550 | control character, analogous to C |
||||||
| 2551 | See the L |
||||||
| 2552 | C |
||||||
| 2553 | C |
||||||
| 2554 | On EBCDIC platforms, you almost always want to use the C |
||||||
| 2555 | |||||||
| 2556 | bool isCNTRL(char ch)'},'isDIGIT' => {'name' => 'isDIGIT','text' => 'Returns a boolean indicating whether the specified character is a | ||||||
| 2557 | digit, analogous to C |
||||||
| 2558 | Variants C |
||||||
| 2559 | See the L |
||||||
| 2560 | C |
||||||
| 2561 | C |
||||||
| 2562 | |||||||
| 2563 | bool isDIGIT(char ch)'},'isGRAPH' => {'name' => 'isGRAPH','text' => 'Returns a boolean indicating whether the specified character is a | ||||||
| 2564 | graphic character, analogous to C |
||||||
| 2565 | See the L |
||||||
| 2566 | C |
||||||
| 2567 | C |
||||||
| 2568 | |||||||
| 2569 | bool isGRAPH(char ch)'},'isIDCONT' => {'name' => 'isIDCONT','text' => 'Returns a boolean indicating whether the specified character can be the | ||||||
| 2570 | second or succeeding character of an identifier. This is very close to, but | ||||||
| 2571 | not quite the same as the official Unicode property C |
||||||
| 2572 | difference is that this returns true only if the input character also matches | ||||||
| 2573 | L. See the L |
||||||
| 2574 | explanation of variants C |
||||||
| 2575 | C |
||||||
| 2576 | C |
||||||
| 2577 | |||||||
| 2578 | bool isIDCONT(char ch)'},'isIDFIRST' => {'name' => 'isIDFIRST','text' => 'Returns a boolean indicating whether the specified character can be the first | ||||||
| 2579 | character of an identifier. This is very close to, but not quite the same as | ||||||
| 2580 | the official Unicode property C |
||||||
| 2581 | returns true only if the input character also matches L. | ||||||
| 2582 | See the L |
||||||
| 2583 | C |
||||||
| 2584 | C |
||||||
| 2585 | |||||||
| 2586 | bool isIDFIRST(char ch)'},'isLOWER' => {'name' => 'isLOWER','text' => 'Returns a boolean indicating whether the specified character is a | ||||||
| 2587 | lowercase character, analogous to C |
||||||
| 2588 | See the L |
||||||
| 2589 | C |
||||||
| 2590 | C |
||||||
| 2591 | |||||||
| 2592 | bool isLOWER(char ch)'},'isOCTAL' => {'name' => 'isOCTAL','text' => 'Returns a boolean indicating whether the specified character is an | ||||||
| 2593 | octal digit, [0-7]. | ||||||
| 2594 | The only two variants are C |
||||||
| 2595 | C |
||||||
| 2596 | |||||||
| 2597 | bool isOCTAL(char ch)'},'isPRINT' => {'name' => 'isPRINT','text' => 'Returns a boolean indicating whether the specified character is a | ||||||
| 2598 | printable character, analogous to C |
||||||
| 2599 | See the L |
||||||
| 2600 | C |
||||||
| 2601 | C |
||||||
| 2602 | |||||||
| 2603 | bool isPRINT(char ch)'},'isPSXSPC' => {'name' => 'isPSXSPC','text' => '(short for Posix Space) | ||||||
| 2604 | Starting in 5.18, this is identical (experimentally) in all its forms to the | ||||||
| 2605 | corresponding C |
||||||
| 2606 | may be backed out in 5.22 if field experience indicates that it | ||||||
| 2607 | was unwise.) | ||||||
| 2608 | The locale forms of this macro are identical to their corresponding | ||||||
| 2609 | C |
||||||
| 2610 | non-locale forms differ from their C |
||||||
| 2611 | C |
||||||
| 2612 | Otherwise they are identical. Thus this macro is analogous to what | ||||||
| 2613 | C |
||||||
| 2614 | See the L |
||||||
| 2615 | C |
||||||
| 2616 | C |
||||||
| 2617 | |||||||
| 2618 | bool isPSXSPC(char ch)'},'isPUNCT' => {'name' => 'isPUNCT','text' => 'Returns a boolean indicating whether the specified character is a | ||||||
| 2619 | punctuation character, analogous to C |
||||||
| 2620 | Note that the definition of what is punctuation isn\'t as | ||||||
| 2621 | straightforward as one might desire. See L | ||||||
| 2622 | Classes> for details. | ||||||
| 2623 | See the L |
||||||
| 2624 | C |
||||||
| 2625 | C |
||||||
| 2626 | |||||||
| 2627 | bool isPUNCT(char ch)'},'isSPACE' => {'name' => 'isSPACE','text' => 'Returns a boolean indicating whether the specified character is a | ||||||
| 2628 | whitespace character. This is analogous | ||||||
| 2629 | to what C |
||||||
| 2630 | (experimentally), this also matches what C |
||||||
| 2631 | ("Experimentally" means that this change may be backed out in 5.22 if | ||||||
| 2632 | field experience indicates that it was unwise.) Prior to 5.18, only the | ||||||
| 2633 | locale forms of this macro (the ones with C |
||||||
| 2634 | precisely what C |
||||||
| 2635 | in the non-locale variants, was that C |
||||||
| 2636 | (See L for a macro that matches a vertical tab in all releases.) | ||||||
| 2637 | See the L |
||||||
| 2638 | C |
||||||
| 2639 | C |
||||||
| 2640 | |||||||
| 2641 | bool isSPACE(char ch)'},'isUPPER' => {'name' => 'isUPPER','text' => 'Returns a boolean indicating whether the specified character is an | ||||||
| 2642 | uppercase character, analogous to C |
||||||
| 2643 | See the L |
||||||
| 2644 | C |
||||||
| 2645 | C |
||||||
| 2646 | |||||||
| 2647 | bool isUPPER(char ch)'},'isWORDCHAR' => {'name' => 'isWORDCHAR','text' => 'Returns a boolean indicating whether the specified character is a character | ||||||
| 2648 | that is a word character, analogous to what C |
||||||
| 2649 | in a regular expression. A word character is an alphabetic character, a | ||||||
| 2650 | decimal digit, a connecting punctuation character (such as an underscore), or | ||||||
| 2651 | a "mark" character that attaches to one of those (like some sort of accent). | ||||||
| 2652 | C |
||||||
| 2653 | word character includes more than the standard C language meaning of | ||||||
| 2654 | alphanumeric. | ||||||
| 2655 | See the L |
||||||
| 2656 | C |
||||||
| 2657 | C |
||||||
| 2658 | |||||||
| 2659 | bool isWORDCHAR(char ch)'},'isXDIGIT' => {'name' => 'isXDIGIT','text' => 'Returns a boolean indicating whether the specified character is a hexadecimal | ||||||
| 2660 | digit. In the ASCII range these are C<[0-9A-Fa-f]>. Variants C |
||||||
| 2661 | and C |
||||||
| 2662 | See the L |
||||||
| 2663 | C |
||||||
| 2664 | C |
||||||
| 2665 | |||||||
| 2666 | bool isXDIGIT(char ch)'},'is_ascii_string' => {'name' => 'is_ascii_string','text' => 'Returns true if the first C |
||||||
| 2667 | or not the string is encoded in UTF-8 (or UTF-EBCDIC on EBCDIC machines). That | ||||||
| 2668 | is, if they are invariant. On ASCII-ish machines, only ASCII characters | ||||||
| 2669 | fit this definition, hence the function\'s name. | ||||||
| 2670 | |||||||
| 2671 | If C |
||||||
| 2672 | use this option, that C |
||||||
| 2673 | have a terminating C |
||||||
| 2674 | |||||||
| 2675 | See also L(), L(), and L(). | ||||||
| 2676 | |||||||
| 2677 | bool is_ascii_string(const U8 *s, STRLEN len)'},'is_lvalue_sub' => {'name' => 'is_lvalue_sub','text' => ''},'is_safe_syscall' => {'name' => 'is_safe_syscall','text' => 'Test that the given C |
||||||
| 2678 | If it does, set C |
||||||
| 2679 | |||||||
| 2680 | Return TRUE if the name is safe. | ||||||
| 2681 | |||||||
| 2682 | Used by the IS_SAFE_SYSCALL() macro. | ||||||
| 2683 | |||||||
| 2684 | bool is_safe_syscall(const char *pv, STRLEN len, | ||||||
| 2685 | const char *what, | ||||||
| 2686 | const char *op_name)'},'is_utf8_char' => {'name' => 'is_utf8_char','text' => 'DEPRECATED! It is planned to remove this function from a | ||||||
| 2687 | future release of Perl. Do not use it for new code; remove it from | ||||||
| 2688 | existing code. | ||||||
| 2689 | |||||||
| 2690 | |||||||
| 2691 | Tests if some arbitrary number of bytes begins in a valid UTF-8 | ||||||
| 2692 | character. Note that an INVARIANT (i.e. ASCII on non-EBCDIC machines) | ||||||
| 2693 | character is a valid UTF-8 character. The actual number of bytes in the UTF-8 | ||||||
| 2694 | character will be returned if it is valid, otherwise 0. | ||||||
| 2695 | |||||||
| 2696 | This function is deprecated due to the possibility that malformed input could | ||||||
| 2697 | cause reading beyond the end of the input buffer. Use L | ||||||
| 2698 | instead. | ||||||
| 2699 | |||||||
| 2700 | STRLEN is_utf8_char(const U8 *s)'},'is_utf8_char_buf' => {'name' => 'is_utf8_char_buf','text' => 'Returns the number of bytes that comprise the first UTF-8 encoded character in | ||||||
| 2701 | buffer C |
||||||
| 2702 | buffer. 0 is returned if C |
||||||
| 2703 | encoded character. | ||||||
| 2704 | |||||||
| 2705 | Note that an INVARIANT character (i.e. ASCII on non-EBCDIC | ||||||
| 2706 | machines) is a valid UTF-8 character. | ||||||
| 2707 | |||||||
| 2708 | STRLEN is_utf8_char_buf(const U8 *buf, | ||||||
| 2709 | const U8 *buf_end)'},'is_utf8_string' => {'name' => 'is_utf8_string','text' => 'Returns true if the first C |
||||||
| 2710 | UTF-8 string, false otherwise. If C |
||||||
| 2711 | using C |
||||||
| 2712 | embedded C |
||||||
| 2713 | that all characters being ASCII constitute \'a valid UTF-8 string\'. | ||||||
| 2714 | |||||||
| 2715 | See also L(), L(), and L(). | ||||||
| 2716 | |||||||
| 2717 | bool is_utf8_string(const U8 *s, STRLEN len)'},'is_utf8_string_loc' => {'name' => 'is_utf8_string_loc','text' => 'Like L but stores the location of the failure (in the | ||||||
| 2718 | case of "utf8ness failure") or the location C |
||||||
| 2719 | "utf8ness success") in the C |
||||||
| 2720 | |||||||
| 2721 | See also L() and L(). | ||||||
| 2722 | |||||||
| 2723 | bool is_utf8_string_loc(const U8 *s, STRLEN len, | ||||||
| 2724 | const U8 **ep)'},'is_utf8_string_loclen' => {'name' => 'is_utf8_string_loclen','text' => 'Like L() but stores the location of the failure (in the | ||||||
| 2725 | case of "utf8ness failure") or the location C |
||||||
| 2726 | "utf8ness success") in the C |
||||||
| 2727 | encoded characters in the C |
||||||
| 2728 | |||||||
| 2729 | See also L() and L(). | ||||||
| 2730 | |||||||
| 2731 | bool is_utf8_string_loclen(const U8 *s, STRLEN len, | ||||||
| 2732 | const U8 **ep, STRLEN *el)'},'items' => {'name' => 'items','text' => 'Variable which is setup by C |
||||||
| 2733 | items on the stack. See L |
||||||
| 2734 | |||||||
| 2735 | I32 items'},'ix' => {'name' => 'ix','text' => 'Variable which is setup by C |
||||||
| 2736 | XSUB\'s aliases was used to invoke it. See L |
||||||
| 2737 | |||||||
| 2738 | I32 ix'},'leave_scope' => {'name' => 'leave_scope','text' => ''},'lex_bufutf8' => {'name' => 'lex_bufutf8','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2739 | removed without notice. | ||||||
| 2740 | |||||||
| 2741 | |||||||
| 2742 | Indicates whether the octets in the lexer buffer | ||||||
| 2743 | (Llinestr>) should be interpreted as the UTF-8 encoding | ||||||
| 2744 | of Unicode characters. If not, they should be interpreted as Latin-1 | ||||||
| 2745 | characters. This is analogous to the C |
||||||
| 2746 | |||||||
| 2747 | In UTF-8 mode, it is not guaranteed that the lexer buffer actually | ||||||
| 2748 | contains valid UTF-8. Lexing code must be robust in the face of invalid | ||||||
| 2749 | encoding. | ||||||
| 2750 | |||||||
| 2751 | The actual C |
||||||
| 2752 | is significant, but not the whole story regarding the input character | ||||||
| 2753 | encoding. Normally, when a file is being read, the scalar contains octets | ||||||
| 2754 | and its C |
||||||
| 2755 | UTF-8 if the C | ||||||
| 2756 | however, the scalar may have the C |
||||||
| 2757 | octets should be interpreted as UTF-8 unless the C | ||||||
| 2758 | is in effect. This logic may change in the future; use this function | ||||||
| 2759 | instead of implementing the logic yourself. | ||||||
| 2760 | |||||||
| 2761 | bool lex_bufutf8()'},'lex_discard_to' => {'name' => 'lex_discard_to','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2762 | removed without notice. | ||||||
| 2763 | |||||||
| 2764 | |||||||
| 2765 | Discards the first part of the Llinestr> buffer, | ||||||
| 2766 | up to I |
||||||
| 2767 | all pointers into the buffer updated appropriately. I |
||||||
| 2768 | be later in the buffer than the position of Lbufptr>: | ||||||
| 2769 | it is not permitted to discard text that has yet to be lexed. | ||||||
| 2770 | |||||||
| 2771 | Normally it is not necessarily to do this directly, because it suffices to | ||||||
| 2772 | use the implicit discarding behaviour of L and things | ||||||
| 2773 | based on it. However, if a token stretches across multiple lines, | ||||||
| 2774 | and the lexing code has kept multiple lines of text in the buffer for | ||||||
| 2775 | that purpose, then after completion of the token it would be wise to | ||||||
| 2776 | explicitly discard the now-unneeded earlier lines, to avoid future | ||||||
| 2777 | multi-line tokens growing the buffer without bound. | ||||||
| 2778 | |||||||
| 2779 | void lex_discard_to(char *ptr)'},'lex_grow_linestr' => {'name' => 'lex_grow_linestr','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2780 | removed without notice. | ||||||
| 2781 | |||||||
| 2782 | |||||||
| 2783 | Reallocates the lexer buffer (Llinestr>) to accommodate | ||||||
| 2784 | at least I |
||||||
| 2785 | pointer to the reallocated buffer. This is necessary before making | ||||||
| 2786 | any direct modification of the buffer that would increase its length. | ||||||
| 2787 | L provides a more convenient way to insert text into | ||||||
| 2788 | the buffer. | ||||||
| 2789 | |||||||
| 2790 | Do not use C |
||||||
| 2791 | this function updates all of the lexer\'s variables that point directly | ||||||
| 2792 | into the buffer. | ||||||
| 2793 | |||||||
| 2794 | char * lex_grow_linestr(STRLEN len)'},'lex_next_chunk' => {'name' => 'lex_next_chunk','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2795 | removed without notice. | ||||||
| 2796 | |||||||
| 2797 | |||||||
| 2798 | Reads in the next chunk of text to be lexed, appending it to | ||||||
| 2799 | Llinestr>. This should be called when lexing code has | ||||||
| 2800 | looked to the end of the current chunk and wants to know more. It is | ||||||
| 2801 | usual, but not necessary, for lexing to have consumed the entirety of | ||||||
| 2802 | the current chunk at this time. | ||||||
| 2803 | |||||||
| 2804 | If Lbufptr> is pointing to the very end of the current | ||||||
| 2805 | chunk (i.e., the current chunk has been entirely consumed), normally the | ||||||
| 2806 | current chunk will be discarded at the same time that the new chunk is | ||||||
| 2807 | read in. If I |
||||||
| 2808 | will not be discarded. If the current chunk has not been entirely | ||||||
| 2809 | consumed, then it will not be discarded regardless of the flag. | ||||||
| 2810 | |||||||
| 2811 | Returns true if some new text was added to the buffer, or false if the | ||||||
| 2812 | buffer has reached the end of the input text. | ||||||
| 2813 | |||||||
| 2814 | bool lex_next_chunk(U32 flags)'},'lex_peek_unichar' => {'name' => 'lex_peek_unichar','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2815 | removed without notice. | ||||||
| 2816 | |||||||
| 2817 | |||||||
| 2818 | Looks ahead one (Unicode) character in the text currently being lexed. | ||||||
| 2819 | Returns the codepoint (unsigned integer value) of the next character, | ||||||
| 2820 | or -1 if lexing has reached the end of the input text. To consume the | ||||||
| 2821 | peeked character, use L. | ||||||
| 2822 | |||||||
| 2823 | If the next character is in (or extends into) the next chunk of input | ||||||
| 2824 | text, the next chunk will be read in. Normally the current chunk will be | ||||||
| 2825 | discarded at the same time, but if I |
||||||
| 2826 | then the current chunk will not be discarded. | ||||||
| 2827 | |||||||
| 2828 | If the input is being interpreted as UTF-8 and a UTF-8 encoding error | ||||||
| 2829 | is encountered, an exception is generated. | ||||||
| 2830 | |||||||
| 2831 | I32 lex_peek_unichar(U32 flags)'},'lex_read_space' => {'name' => 'lex_read_space','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2832 | removed without notice. | ||||||
| 2833 | |||||||
| 2834 | |||||||
| 2835 | Reads optional spaces, in Perl style, in the text currently being | ||||||
| 2836 | lexed. The spaces may include ordinary whitespace characters and | ||||||
| 2837 | Perl-style comments. C<#line> directives are processed if encountered. | ||||||
| 2838 | Lbufptr> is moved past the spaces, so that it points | ||||||
| 2839 | at a non-space character (or the end of the input text). | ||||||
| 2840 | |||||||
| 2841 | If spaces extend into the next chunk of input text, the next chunk will | ||||||
| 2842 | be read in. Normally the current chunk will be discarded at the same | ||||||
| 2843 | time, but if I |
||||||
| 2844 | chunk will not be discarded. | ||||||
| 2845 | |||||||
| 2846 | void lex_read_space(U32 flags)'},'lex_read_to' => {'name' => 'lex_read_to','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2847 | removed without notice. | ||||||
| 2848 | |||||||
| 2849 | |||||||
| 2850 | Consume text in the lexer buffer, from Lbufptr> up | ||||||
| 2851 | to I |
||||||
| 2852 | performing the correct bookkeeping whenever a newline character is passed. | ||||||
| 2853 | This is the normal way to consume lexed text. | ||||||
| 2854 | |||||||
| 2855 | Interpretation of the buffer\'s octets can be abstracted out by | ||||||
| 2856 | using the slightly higher-level functions L and | ||||||
| 2857 | L. | ||||||
| 2858 | |||||||
| 2859 | void lex_read_to(char *ptr)'},'lex_read_unichar' => {'name' => 'lex_read_unichar','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2860 | removed without notice. | ||||||
| 2861 | |||||||
| 2862 | |||||||
| 2863 | Reads the next (Unicode) character in the text currently being lexed. | ||||||
| 2864 | Returns the codepoint (unsigned integer value) of the character read, | ||||||
| 2865 | and moves Lbufptr> past the character, or returns -1 | ||||||
| 2866 | if lexing has reached the end of the input text. To non-destructively | ||||||
| 2867 | examine the next character, use L instead. | ||||||
| 2868 | |||||||
| 2869 | If the next character is in (or extends into) the next chunk of input | ||||||
| 2870 | text, the next chunk will be read in. Normally the current chunk will be | ||||||
| 2871 | discarded at the same time, but if I |
||||||
| 2872 | then the current chunk will not be discarded. | ||||||
| 2873 | |||||||
| 2874 | If the input is being interpreted as UTF-8 and a UTF-8 encoding error | ||||||
| 2875 | is encountered, an exception is generated. | ||||||
| 2876 | |||||||
| 2877 | I32 lex_read_unichar(U32 flags)'},'lex_start' => {'name' => 'lex_start','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2878 | removed without notice. | ||||||
| 2879 | |||||||
| 2880 | |||||||
| 2881 | Creates and initialises a new lexer/parser state object, supplying | ||||||
| 2882 | a context in which to lex and parse from a new source of Perl code. | ||||||
| 2883 | A pointer to the new state object is placed in L. An entry | ||||||
| 2884 | is made on the save stack so that upon unwinding the new state object | ||||||
| 2885 | will be destroyed and the former value of L will be restored. | ||||||
| 2886 | Nothing else need be done to clean up the parsing context. | ||||||
| 2887 | |||||||
| 2888 | The code to be parsed comes from I |
||||||
| 2889 | non-null, provides a string (in SV form) containing code to be parsed. | ||||||
| 2890 | A copy of the string is made, so subsequent modification of I |
||||||
| 2891 | does not affect parsing. I |
||||||
| 2892 | from which code will be read to be parsed. If both are non-null, the | ||||||
| 2893 | code in I |
||||||
| 2894 | and I |
||||||
| 2895 | |||||||
| 2896 | The I |
||||||
| 2897 | used by perl internally, so extensions should always pass zero. | ||||||
| 2898 | |||||||
| 2899 | void lex_start(SV *line, PerlIO *rsfp, U32 flags)'},'lex_stuff_pv' => {'name' => 'lex_stuff_pv','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2900 | removed without notice. | ||||||
| 2901 | |||||||
| 2902 | |||||||
| 2903 | Insert characters into the lexer buffer (Llinestr>), | ||||||
| 2904 | immediately after the current lexing point (Lbufptr>), | ||||||
| 2905 | reallocating the buffer if necessary. This means that lexing code that | ||||||
| 2906 | runs later will see the characters as if they had appeared in the input. | ||||||
| 2907 | It is not recommended to do this as part of normal parsing, and most | ||||||
| 2908 | uses of this facility run the risk of the inserted characters being | ||||||
| 2909 | interpreted in an unintended manner. | ||||||
| 2910 | |||||||
| 2911 | The string to be inserted is represented by octets starting at I |
||||||
| 2912 | and continuing to the first nul. These octets are interpreted as either | ||||||
| 2913 | UTF-8 or Latin-1, according to whether the C |
||||||
| 2914 | in I |
||||||
| 2915 | to how the buffer is currently being interpreted (L). | ||||||
| 2916 | If it is not convenient to nul-terminate a string to be inserted, the | ||||||
| 2917 | L function is more appropriate. | ||||||
| 2918 | |||||||
| 2919 | void lex_stuff_pv(const char *pv, U32 flags)'},'lex_stuff_pvn' => {'name' => 'lex_stuff_pvn','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2920 | removed without notice. | ||||||
| 2921 | |||||||
| 2922 | |||||||
| 2923 | Insert characters into the lexer buffer (Llinestr>), | ||||||
| 2924 | immediately after the current lexing point (Lbufptr>), | ||||||
| 2925 | reallocating the buffer if necessary. This means that lexing code that | ||||||
| 2926 | runs later will see the characters as if they had appeared in the input. | ||||||
| 2927 | It is not recommended to do this as part of normal parsing, and most | ||||||
| 2928 | uses of this facility run the risk of the inserted characters being | ||||||
| 2929 | interpreted in an unintended manner. | ||||||
| 2930 | |||||||
| 2931 | The string to be inserted is represented by I |
||||||
| 2932 | at I |
||||||
| 2933 | according to whether the C |
||||||
| 2934 | The characters are recoded for the lexer buffer, according to how the | ||||||
| 2935 | buffer is currently being interpreted (L). If a string | ||||||
| 2936 | to be inserted is available as a Perl scalar, the L | ||||||
| 2937 | function is more convenient. | ||||||
| 2938 | |||||||
| 2939 | void lex_stuff_pvn(const char *pv, STRLEN len, | ||||||
| 2940 | U32 flags)'},'lex_stuff_pvs' => {'name' => 'lex_stuff_pvs','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2941 | removed without notice. | ||||||
| 2942 | |||||||
| 2943 | |||||||
| 2944 | Like L, but takes a literal string instead of a | ||||||
| 2945 | string/length pair. | ||||||
| 2946 | |||||||
| 2947 | void lex_stuff_pvs(const char *pv, U32 flags)'},'lex_stuff_sv' => {'name' => 'lex_stuff_sv','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2948 | removed without notice. | ||||||
| 2949 | |||||||
| 2950 | |||||||
| 2951 | Insert characters into the lexer buffer (Llinestr>), | ||||||
| 2952 | immediately after the current lexing point (Lbufptr>), | ||||||
| 2953 | reallocating the buffer if necessary. This means that lexing code that | ||||||
| 2954 | runs later will see the characters as if they had appeared in the input. | ||||||
| 2955 | It is not recommended to do this as part of normal parsing, and most | ||||||
| 2956 | uses of this facility run the risk of the inserted characters being | ||||||
| 2957 | interpreted in an unintended manner. | ||||||
| 2958 | |||||||
| 2959 | The string to be inserted is the string value of I |
||||||
| 2960 | are recoded for the lexer buffer, according to how the buffer is currently | ||||||
| 2961 | being interpreted (L). If a string to be inserted is | ||||||
| 2962 | not already a Perl scalar, the L function avoids the | ||||||
| 2963 | need to construct a scalar. | ||||||
| 2964 | |||||||
| 2965 | void lex_stuff_sv(SV *sv, U32 flags)'},'lex_unstuff' => {'name' => 'lex_unstuff','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 2966 | removed without notice. | ||||||
| 2967 | |||||||
| 2968 | |||||||
| 2969 | Discards text about to be lexed, from Lbufptr> up to | ||||||
| 2970 | I |
||||||
| 2971 | This hides the discarded text from any lexing code that runs later, | ||||||
| 2972 | as if the text had never appeared. | ||||||
| 2973 | |||||||
| 2974 | This is not the normal way to consume lexed text. For that, use | ||||||
| 2975 | L. | ||||||
| 2976 | |||||||
| 2977 | void lex_unstuff(char *ptr)'},'load_module' => {'name' => 'load_module','text' => 'Loads the module whose name is pointed to by the string part of name. | ||||||
| 2978 | Note that the actual module name, not its filename, should be given. | ||||||
| 2979 | Eg, "Foo::Bar" instead of "Foo/Bar.pm". flags can be any of | ||||||
| 2980 | PERL_LOADMOD_DENY, PERL_LOADMOD_NOIMPORT, or PERL_LOADMOD_IMPORT_OPS | ||||||
| 2981 | (or 0 for no flags). ver, if specified | ||||||
| 2982 | and not NULL, provides version semantics | ||||||
| 2983 | similar to C | ||||||
| 2984 | arguments can be used to specify arguments to the module\'s import() | ||||||
| 2985 | method, similar to C | ||||||
| 2986 | terminated with a final NULL pointer. Note that this list can only | ||||||
| 2987 | be omitted when the PERL_LOADMOD_NOIMPORT flag has been used. | ||||||
| 2988 | Otherwise at least a single NULL pointer to designate the default | ||||||
| 2989 | import list is required. | ||||||
| 2990 | |||||||
| 2991 | The reference count for each specified C |
||||||
| 2992 | |||||||
| 2993 | void load_module(U32 flags, SV* name, SV* ver, ...)'},'load_module_nocontext' => {'name' => 'load_module_nocontext','text' => ''},'looks_like_number' => {'name' => 'looks_like_number','text' => 'Test if the content of an SV looks like a number (or is a number). | ||||||
| 2994 | C |
||||||
| 2995 | non-numeric warning), even if your atof() doesn\'t grok them. Get-magic is | ||||||
| 2996 | ignored. | ||||||
| 2997 | |||||||
| 2998 | I32 looks_like_number(SV *const sv)'},'mPUSHi' => {'name' => 'mPUSHi','text' => 'Push an integer onto the stack. The stack must have room for this element. | ||||||
| 2999 | Does not use C |
||||||
| 3000 | |||||||
| 3001 | void mPUSHi(IV iv)'},'mPUSHn' => {'name' => 'mPUSHn','text' => 'Push a double onto the stack. The stack must have room for this element. | ||||||
| 3002 | Does not use C |
||||||
| 3003 | |||||||
| 3004 | void mPUSHn(NV nv)'},'mPUSHp' => {'name' => 'mPUSHp','text' => 'Push a string onto the stack. The stack must have room for this element. | ||||||
| 3005 | The C |
||||||
| 3006 | See also C |
||||||
| 3007 | |||||||
| 3008 | void mPUSHp(char* str, STRLEN len)'},'mPUSHs' => {'name' => 'mPUSHs','text' => 'Push an SV onto the stack and mortalizes the SV. The stack must have room | ||||||
| 3009 | for this element. Does not use C |
||||||
| 3010 | |||||||
| 3011 | void mPUSHs(SV* sv)'},'mPUSHu' => {'name' => 'mPUSHu','text' => 'Push an unsigned integer onto the stack. The stack must have room for this | ||||||
| 3012 | element. Does not use C |
||||||
| 3013 | |||||||
| 3014 | void mPUSHu(UV uv)'},'mXPUSHi' => {'name' => 'mXPUSHi','text' => 'Push an integer onto the stack, extending the stack if necessary. | ||||||
| 3015 | Does not use C |
||||||
| 3016 | |||||||
| 3017 | void mXPUSHi(IV iv)'},'mXPUSHn' => {'name' => 'mXPUSHn','text' => 'Push a double onto the stack, extending the stack if necessary. | ||||||
| 3018 | Does not use C |
||||||
| 3019 | |||||||
| 3020 | void mXPUSHn(NV nv)'},'mXPUSHp' => {'name' => 'mXPUSHp','text' => 'Push a string onto the stack, extending the stack if necessary. The C |
||||||
| 3021 | indicates the length of the string. Does not use C |
||||||
| 3022 | C |
||||||
| 3023 | |||||||
| 3024 | void mXPUSHp(char* str, STRLEN len)'},'mXPUSHs' => {'name' => 'mXPUSHs','text' => 'Push an SV onto the stack, extending the stack if necessary and mortalizes | ||||||
| 3025 | the SV. Does not use C |
||||||
| 3026 | |||||||
| 3027 | void mXPUSHs(SV* sv)'},'mXPUSHu' => {'name' => 'mXPUSHu','text' => 'Push an unsigned integer onto the stack, extending the stack if necessary. | ||||||
| 3028 | Does not use C |
||||||
| 3029 | |||||||
| 3030 | void mXPUSHu(UV uv)'},'magic_dump' => {'name' => 'magic_dump','text' => ''},'malloc' => {'name' => 'malloc','text' => ''},'markstack_grow' => {'name' => 'markstack_grow','text' => ''},'mess' => {'name' => 'mess','text' => 'Take a sprintf-style format pattern and argument list. These are used to | ||||||
| 3031 | generate a string message. If the message does not end with a newline, | ||||||
| 3032 | then it will be extended with some indication of the current location | ||||||
| 3033 | in the code, as described for L. | ||||||
| 3034 | |||||||
| 3035 | Normally, the resulting message is returned in a new mortal SV. | ||||||
| 3036 | During global destruction a single SV may be shared between uses of | ||||||
| 3037 | this function. | ||||||
| 3038 | |||||||
| 3039 | SV * mess(const char *pat, ...)'},'mess_nocontext' => {'name' => 'mess_nocontext','text' => ''},'mess_sv' => {'name' => 'mess_sv','text' => 'Expands a message, intended for the user, to include an indication of | ||||||
| 3040 | the current location in the code, if the message does not already appear | ||||||
| 3041 | to be complete. | ||||||
| 3042 | |||||||
| 3043 | C |
||||||
| 3044 | will be used as-is and will be the result of this function. Otherwise it | ||||||
| 3045 | is used as a string, and if it already ends with a newline, it is taken | ||||||
| 3046 | to be complete, and the result of this function will be the same string. | ||||||
| 3047 | If the message does not end with a newline, then a segment such as C | ||||||
| 3048 | foo.pl line 37> will be appended, and possibly other clauses indicating | ||||||
| 3049 | the current state of execution. The resulting message will end with a | ||||||
| 3050 | dot and a newline. | ||||||
| 3051 | |||||||
| 3052 | Normally, the resulting message is returned in a new mortal SV. | ||||||
| 3053 | During global destruction a single SV may be shared between uses of this | ||||||
| 3054 | function. If C |
||||||
| 3055 | required) to modify and return C |
||||||
| 3056 | |||||||
| 3057 | SV * mess_sv(SV *basemsg, bool consume)'},'mfree' => {'name' => 'mfree','text' => ''},'mg_clear' => {'name' => 'mg_clear','text' => 'Clear something magical that the SV represents. See C |
||||||
| 3058 | |||||||
| 3059 | int mg_clear(SV* sv)'},'mg_copy' => {'name' => 'mg_copy','text' => 'Copies the magic from one SV to another. See C |
||||||
| 3060 | |||||||
| 3061 | int mg_copy(SV *sv, SV *nsv, const char *key, | ||||||
| 3062 | I32 klen)'},'mg_dup' => {'name' => 'mg_dup','text' => ''},'mg_find' => {'name' => 'mg_find','text' => 'Finds the magic pointer for type matching the SV. See C |
||||||
| 3063 | |||||||
| 3064 | MAGIC* mg_find(const SV* sv, int type)'},'mg_findext' => {'name' => 'mg_findext','text' => 'Finds the magic pointer of C |
||||||
| 3065 | C |
||||||
| 3066 | |||||||
| 3067 | MAGIC* mg_findext(const SV* sv, int type, | ||||||
| 3068 | const MGVTBL *vtbl)'},'mg_free' => {'name' => 'mg_free','text' => 'Free any magic storage used by the SV. See C |
||||||
| 3069 | |||||||
| 3070 | int mg_free(SV* sv)'},'mg_free_type' => {'name' => 'mg_free_type','text' => 'Remove any magic of type I |
||||||
| 3071 | |||||||
| 3072 | void mg_free_type(SV *sv, int how)'},'mg_get' => {'name' => 'mg_get','text' => 'Do magic before a value is retrieved from the SV. The type of SV must | ||||||
| 3073 | be >= SVt_PVMG. See C |
||||||
| 3074 | |||||||
| 3075 | int mg_get(SV* sv)'},'mg_length' => {'name' => 'mg_length','text' => 'DEPRECATED! It is planned to remove this function from a | ||||||
| 3076 | future release of Perl. Do not use it for new code; remove it from | ||||||
| 3077 | existing code. | ||||||
| 3078 | |||||||
| 3079 | |||||||
| 3080 | Reports on the SV\'s length in bytes, calling length magic if available, | ||||||
| 3081 | but does not set the UTF8 flag on the sv. It will fall back to \'get\' | ||||||
| 3082 | magic if there is no \'length\' magic, but with no indication as to | ||||||
| 3083 | whether it called \'get\' magic. It assumes the sv is a PVMG or | ||||||
| 3084 | higher. Use sv_len() instead. | ||||||
| 3085 | |||||||
| 3086 | U32 mg_length(SV* sv)'},'mg_magical' => {'name' => 'mg_magical','text' => 'Turns on the magical status of an SV. See C |
||||||
| 3087 | |||||||
| 3088 | void mg_magical(SV* sv)'},'mg_set' => {'name' => 'mg_set','text' => 'Do magic after a value is assigned to the SV. See C |
||||||
| 3089 | |||||||
| 3090 | int mg_set(SV* sv)'},'mg_size' => {'name' => 'mg_size','text' => ''},'mini_mktime' => {'name' => 'mini_mktime','text' => ''},'moreswitches' => {'name' => 'moreswitches','text' => ''},'mro_get_from_name' => {'name' => 'mro_get_from_name','text' => ''},'mro_get_linear_isa' => {'name' => 'mro_get_linear_isa','text' => 'Returns the mro linearisation for the given stash. By default, this | ||||||
| 3091 | will be whatever C |
||||||
| 3092 | other MRO is in effect for the stash. The return value is a | ||||||
| 3093 | read-only AV*. | ||||||
| 3094 | |||||||
| 3095 | You are responsible for C |
||||||
| 3096 | return value if you plan to store it anywhere | ||||||
| 3097 | semi-permanently (otherwise it might be deleted | ||||||
| 3098 | out from under you the next time the cache is | ||||||
| 3099 | invalidated). | ||||||
| 3100 | |||||||
| 3101 | AV* mro_get_linear_isa(HV* stash)'},'mro_get_private_data' => {'name' => 'mro_get_private_data','text' => ''},'mro_method_changed_in' => {'name' => 'mro_method_changed_in','text' => 'Invalidates method caching on any child classes | ||||||
| 3102 | of the given stash, so that they might notice | ||||||
| 3103 | the changes in this one. | ||||||
| 3104 | |||||||
| 3105 | Ideally, all instances of C |
||||||
| 3106 | perl source outside of F |
||||||
| 3107 | replaced by calls to this. | ||||||
| 3108 | |||||||
| 3109 | Perl automatically handles most of the common | ||||||
| 3110 | ways a method might be redefined. However, there | ||||||
| 3111 | are a few ways you could change a method in a stash | ||||||
| 3112 | without the cache code noticing, in which case you | ||||||
| 3113 | need to call this method afterwards: | ||||||
| 3114 | |||||||
| 3115 | 1) Directly manipulating the stash HV entries from | ||||||
| 3116 | XS code. | ||||||
| 3117 | |||||||
| 3118 | 2) Assigning a reference to a readonly scalar | ||||||
| 3119 | constant into a stash entry in order to create | ||||||
| 3120 | a constant subroutine (like constant.pm | ||||||
| 3121 | does). | ||||||
| 3122 | |||||||
| 3123 | This same method is available from pure perl | ||||||
| 3124 | via, C |
||||||
| 3125 | |||||||
| 3126 | void mro_method_changed_in(HV* stash)'},'mro_register' => {'name' => 'mro_register','text' => 'Registers a custom mro plugin. See L |
||||||
| 3127 | |||||||
| 3128 | void mro_register(const struct mro_alg *mro)'},'mro_set_mro' => {'name' => 'mro_set_mro','text' => ''},'mro_set_private_data' => {'name' => 'mro_set_private_data','text' => ''},'my_atof' => {'name' => 'my_atof','text' => ''},'my_atof2' => {'name' => 'my_atof2','text' => ''},'my_bcopy' => {'name' => 'my_bcopy','text' => ''},'my_bzero' => {'name' => 'my_bzero','text' => ''},'my_chsize' => {'name' => 'my_chsize','text' => ''},'my_cxt_index' => {'name' => 'my_cxt_index','text' => ''},'my_cxt_init' => {'name' => 'my_cxt_init','text' => ''},'my_dirfd' => {'name' => 'my_dirfd','text' => ''},'my_exit' => {'name' => 'my_exit','text' => ''},'my_failure_exit' => {'name' => 'my_failure_exit','text' => ''},'my_fflush_all' => {'name' => 'my_fflush_all','text' => ''},'my_fork' => {'name' => 'my_fork','text' => ''},'my_lstat' => {'name' => 'my_lstat','text' => ''},'my_memcmp' => {'name' => 'my_memcmp','text' => ''},'my_memset' => {'name' => 'my_memset','text' => ''},'my_pclose' => {'name' => 'my_pclose','text' => ''},'my_popen' => {'name' => 'my_popen','text' => ''},'my_popen_list' => {'name' => 'my_popen_list','text' => ''},'my_setenv' => {'name' => 'my_setenv','text' => ''},'my_snprintf' => {'name' => 'my_snprintf','text' => 'The C library C |
||||||
| 3129 | standards-compliant (uses C |
||||||
| 3130 | C |
||||||
| 3131 | C |
||||||
| 3132 | but that may be too late). Consider using C |
||||||
| 3133 | getting C |
||||||
| 3134 | |||||||
| 3135 | int my_snprintf(char *buffer, const Size_t len, | ||||||
| 3136 | const char *format, ...)'},'my_socketpair' => {'name' => 'my_socketpair','text' => ''},'my_sprintf' => {'name' => 'my_sprintf','text' => 'The C library C |
||||||
| 3137 | the length of the string written to the buffer. Only rare pre-ANSI systems | ||||||
| 3138 | need the wrapper function - usually this is a direct call to C |
||||||
| 3139 | |||||||
| 3140 | int my_sprintf(char *buffer, const char *pat, ...)'},'my_stat' => {'name' => 'my_stat','text' => ''},'my_strftime' => {'name' => 'my_strftime','text' => ''},'my_strlcat' => {'name' => 'my_strlcat','text' => 'The C library C |
||||||
| 3141 | This operates on C C |
||||||
| 3142 | |||||||
| 3143 | C |
||||||
| 3144 | most S |
||||||
| 3145 | unless C |
||||||
| 3146 | practice this should not happen as it means that either C |
||||||
| 3147 | that C |
||||||
| 3148 | |||||||
| 3149 | Note that C |
||||||
| 3150 | the result is guaranteed to be C |
||||||
| 3151 | room for the C |
||||||
| 3152 | |||||||
| 3153 | Size_t my_strlcat(char *dst, const char *src, | ||||||
| 3154 | Size_t size)'},'my_strlcpy' => {'name' => 'my_strlcpy','text' => 'The C library C |
||||||
| 3155 | This operates on C C |
||||||
| 3156 | |||||||
| 3157 | C |
||||||
| 3158 | to C |
||||||
| 3159 | |||||||
| 3160 | Size_t my_strlcpy(char *dst, const char *src, | ||||||
| 3161 | Size_t size)'},'my_vsnprintf' => {'name' => 'my_vsnprintf','text' => 'The C library C |
||||||
| 3162 | However, if if the C |
||||||
| 3163 | use the unsafe C |
||||||
| 3164 | overrun check, but that may be too late). Consider using | ||||||
| 3165 | C |
||||||
| 3166 | |||||||
| 3167 | int my_vsnprintf(char *buffer, const Size_t len, | ||||||
| 3168 | const char *format, va_list ap)'},'newANONATTRSUB' => {'name' => 'newANONATTRSUB','text' => ''},'newANONHASH' => {'name' => 'newANONHASH','text' => ''},'newANONLIST' => {'name' => 'newANONLIST','text' => ''},'newANONSUB' => {'name' => 'newANONSUB','text' => ''},'newASSIGNOP' => {'name' => 'newASSIGNOP','text' => 'Constructs, checks, and returns an assignment op. I |
||||||
| 3169 | supply the parameters of the assignment; they are consumed by this | ||||||
| 3170 | function and become part of the constructed op tree. | ||||||
| 3171 | |||||||
| 3172 | If I |
||||||
| 3173 | a suitable conditional optree is constructed. If I |
||||||
| 3174 | of a binary operator, such as C |
||||||
| 3175 | performs the binary operation and assigns the result to the left argument. | ||||||
| 3176 | Either way, if I |
||||||
| 3177 | |||||||
| 3178 | If I |
||||||
| 3179 | constructed. Which type of assignment it is is automatically determined. | ||||||
| 3180 | I |
||||||
| 3181 | will be set automatically, and, shifted up eight bits, the eight bits | ||||||
| 3182 | of C |
||||||
| 3183 | set as required. | ||||||
| 3184 | |||||||
| 3185 | OP * newASSIGNOP(I32 flags, OP *left, I32 optype, | ||||||
| 3186 | OP *right)'},'newATTRSUB' => {'name' => 'newATTRSUB','text' => ''},'newAV' => {'name' => 'newAV','text' => 'Creates a new AV. The reference count is set to 1. | ||||||
| 3187 | |||||||
| 3188 | Perl equivalent: C |
||||||
| 3189 | |||||||
| 3190 | AV* newAV()'},'newAVREF' => {'name' => 'newAVREF','text' => ''},'newBINOP' => {'name' => 'newBINOP','text' => 'Constructs, checks, and returns an op of any binary type. I |
||||||
| 3191 | is the opcode. I |
||||||
| 3192 | that C |
||||||
| 3193 | the eight bits of C |
||||||
| 3194 | 2 is automatically set as required. I |
||||||
| 3195 | two ops to be the direct children of the binary op; they are consumed | ||||||
| 3196 | by this function and become part of the constructed op tree. | ||||||
| 3197 | |||||||
| 3198 | OP * newBINOP(I32 type, I32 flags, OP *first, | ||||||
| 3199 | OP *last)'},'newCONDOP' => {'name' => 'newCONDOP','text' => 'Constructs, checks, and returns a conditional-expression (C |
||||||
| 3200 | op. I |
||||||
| 3201 | will be set automatically, and, shifted up eight bits, the eight bits of | ||||||
| 3202 | C |
||||||
| 3203 | I |
||||||
| 3204 | and I |
||||||
| 3205 | this function and become part of the constructed op tree. | ||||||
| 3206 | |||||||
| 3207 | OP * newCONDOP(I32 flags, OP *first, OP *trueop, | ||||||
| 3208 | OP *falseop)'},'newCONSTSUB' => {'name' => 'newCONSTSUB','text' => 'See L. | ||||||
| 3209 | |||||||
| 3210 | CV* newCONSTSUB(HV* stash, const char* name, SV* sv)'},'newCONSTSUB_flags' => {'name' => 'newCONSTSUB_flags','text' => 'Creates a constant sub equivalent to Perl C which is | ||||||
| 3211 | eligible for inlining at compile-time. | ||||||
| 3212 | |||||||
| 3213 | Currently, the only useful value for C |
||||||
| 3214 | |||||||
| 3215 | The newly created subroutine takes ownership of a reference to the passed in | ||||||
| 3216 | SV. | ||||||
| 3217 | |||||||
| 3218 | Passing NULL for SV creates a constant sub equivalent to C, | ||||||
| 3219 | which won\'t be called if used as a destructor, but will suppress the overhead | ||||||
| 3220 | of a call to C |
||||||
| 3221 | compile time.) | ||||||
| 3222 | |||||||
| 3223 | CV* newCONSTSUB_flags(HV* stash, const char* name, | ||||||
| 3224 | STRLEN len, U32 flags, SV* sv)'},'newCVREF' => {'name' => 'newCVREF','text' => ''},'newFORM' => {'name' => 'newFORM','text' => ''},'newFOROP' => {'name' => 'newFOROP','text' => 'Constructs, checks, and returns an op tree expressing a C |
||||||
| 3225 | loop (iteration through a list of values). This is a heavyweight loop, | ||||||
| 3226 | with structure that allows exiting the loop by C |
||||||
| 3227 | |||||||
| 3228 | I |
||||||
| 3229 | item in turn; if null, it defaults to C<$_> (either lexical or global). | ||||||
| 3230 | I |
||||||
| 3231 | the main body of the loop, and I |
||||||
| 3232 | block that operates as a second half of the body. All of these optree | ||||||
| 3233 | inputs are consumed by this function and become part of the constructed | ||||||
| 3234 | op tree. | ||||||
| 3235 | |||||||
| 3236 | I |
||||||
| 3237 | op and, shifted up eight bits, the eight bits of C |
||||||
| 3238 | the C |
||||||
| 3239 | automatically. | ||||||
| 3240 | |||||||
| 3241 | OP * newFOROP(I32 flags, OP *sv, OP *expr, OP *block, | ||||||
| 3242 | OP *cont)'},'newGIVENOP' => {'name' => 'newGIVENOP','text' => 'Constructs, checks, and returns an op tree expressing a C |
||||||
| 3243 | I |
||||||
| 3244 | variable, and I |
||||||
| 3245 | are consumed by this function and become part of the constructed op tree. | ||||||
| 3246 | I |
||||||
| 3247 | be affected. If it is 0, the global $_ will be used. | ||||||
| 3248 | |||||||
| 3249 | OP * newGIVENOP(OP *cond, OP *block, | ||||||
| 3250 | PADOFFSET defsv_off)'},'newGVOP' => {'name' => 'newGVOP','text' => 'Constructs, checks, and returns an op of any type that involves an | ||||||
| 3251 | embedded reference to a GV. I |
||||||
| 3252 | eight bits of C |
||||||
| 3253 | reference; calling this function does not transfer ownership of any | ||||||
| 3254 | reference to it. | ||||||
| 3255 | |||||||
| 3256 | OP * newGVOP(I32 type, I32 flags, GV *gv)'},'newGVREF' => {'name' => 'newGVREF','text' => ''},'newGVgen' => {'name' => 'newGVgen','text' => ''},'newGVgen_flags' => {'name' => 'newGVgen_flags','text' => ''},'newHV' => {'name' => 'newHV','text' => 'Creates a new HV. The reference count is set to 1. | ||||||
| 3257 | |||||||
| 3258 | HV* newHV()'},'newHVREF' => {'name' => 'newHVREF','text' => ''},'newHVhv' => {'name' => 'newHVhv','text' => ''},'newIO' => {'name' => 'newIO','text' => ''},'newLISTOP' => {'name' => 'newLISTOP','text' => 'Constructs, checks, and returns an op of any list type. I |
||||||
| 3259 | the opcode. I |
||||||
| 3260 | C |
||||||
| 3261 | supply up to two ops to be direct children of the list op; they are | ||||||
| 3262 | consumed by this function and become part of the constructed op tree. | ||||||
| 3263 | |||||||
| 3264 | OP * newLISTOP(I32 type, I32 flags, OP *first, | ||||||
| 3265 | OP *last)'},'newLOGOP' => {'name' => 'newLOGOP','text' => 'Constructs, checks, and returns a logical (flow control) op. I |
||||||
| 3266 | is the opcode. I |
||||||
| 3267 | that C |
||||||
| 3268 | the eight bits of C |
||||||
| 3269 | automatically set. I |
||||||
| 3270 | flow, and I |
||||||
| 3271 | consumed by this function and become part of the constructed op tree. | ||||||
| 3272 | |||||||
| 3273 | OP * newLOGOP(I32 type, I32 flags, OP *first, | ||||||
| 3274 | OP *other)'},'newLOOPEX' => {'name' => 'newLOOPEX','text' => 'Constructs, checks, and returns a loop-exiting op (such as C |
||||||
| 3275 | or C |
||||||
| 3276 | determining the target of the op; it is consumed by this function and | ||||||
| 3277 | becomes part of the constructed op tree. | ||||||
| 3278 | |||||||
| 3279 | OP * newLOOPEX(I32 type, OP *label)'},'newLOOPOP' => {'name' => 'newLOOPOP','text' => 'Constructs, checks, and returns an op tree expressing a loop. This is | ||||||
| 3280 | only a loop in the control flow through the op tree; it does not have | ||||||
| 3281 | the heavyweight loop structure that allows exiting the loop by C |
||||||
| 3282 | and suchlike. I |
||||||
| 3283 | top-level op, except that some bits will be set automatically as required. | ||||||
| 3284 | I |
||||||
| 3285 | supplies the body of the loop; they are consumed by this function and | ||||||
| 3286 | become part of the constructed op tree. I |
||||||
| 3287 | unused and should always be 1. | ||||||
| 3288 | |||||||
| 3289 | OP * newLOOPOP(I32 flags, I32 debuggable, OP *expr, | ||||||
| 3290 | OP *block)'},'newMYSUB' => {'name' => 'newMYSUB','text' => ''},'newNULLLIST' => {'name' => 'newNULLLIST','text' => 'Constructs, checks, and returns a new C |
||||||
| 3291 | empty list expression. | ||||||
| 3292 | |||||||
| 3293 | OP * newNULLLIST()'},'newOP' => {'name' => 'newOP','text' => 'Constructs, checks, and returns an op of any base type (any type that | ||||||
| 3294 | has no extra fields). I |
||||||
| 3295 | eight bits of C |
||||||
| 3296 | of C |
||||||
| 3297 | |||||||
| 3298 | OP * newOP(I32 type, I32 flags)'},'newPADOP' => {'name' => 'newPADOP','text' => 'Constructs, checks, and returns an op of any type that involves a | ||||||
| 3299 | reference to a pad element. I |
||||||
| 3300 | eight bits of C |
||||||
| 3301 | is populated with I |
||||||
| 3302 | to it. | ||||||
| 3303 | |||||||
| 3304 | This function only exists if Perl has been compiled to use ithreads. | ||||||
| 3305 | |||||||
| 3306 | OP * newPADOP(I32 type, I32 flags, SV *sv)'},'newPMOP' => {'name' => 'newPMOP','text' => 'Constructs, checks, and returns an op of any pattern matching type. | ||||||
| 3307 | I |
||||||
| 3308 | and, shifted up eight bits, the eight bits of C |
||||||
| 3309 | |||||||
| 3310 | OP * newPMOP(I32 type, I32 flags)'},'newPROG' => {'name' => 'newPROG','text' => ''},'newPVOP' => {'name' => 'newPVOP','text' => 'Constructs, checks, and returns an op of any type that involves an | ||||||
| 3311 | embedded C-level pointer (PV). I |
||||||
| 3312 | the eight bits of C |
||||||
| 3313 | must have been allocated using C |
||||||
| 3314 | be freed when the op is destroyed. | ||||||
| 3315 | |||||||
| 3316 | OP * newPVOP(I32 type, I32 flags, char *pv)'},'newRANGE' => {'name' => 'newRANGE','text' => 'Constructs and returns a C |
||||||
| 3317 | C |
||||||
| 3318 | C |
||||||
| 3319 | for both the C |
||||||
| 3320 | 1 is automatically set. I |
||||||
| 3321 | controlling the endpoints of the range; they are consumed by this function | ||||||
| 3322 | and become part of the constructed op tree. | ||||||
| 3323 | |||||||
| 3324 | OP * newRANGE(I32 flags, OP *left, OP *right)'},'newRV' => {'name' => 'newRV','text' => ''},'newRV_inc' => {'name' => 'newRV_inc','text' => 'Creates an RV wrapper for an SV. The reference count for the original SV is | ||||||
| 3325 | incremented. | ||||||
| 3326 | |||||||
| 3327 | SV* newRV_inc(SV* sv)'},'newRV_noinc' => {'name' => 'newRV_noinc','text' => 'Creates an RV wrapper for an SV. The reference count for the original | ||||||
| 3328 | SV is B |
||||||
| 3329 | |||||||
| 3330 | SV* newRV_noinc(SV *const sv)'},'newSLICEOP' => {'name' => 'newSLICEOP','text' => 'Constructs, checks, and returns an C |
||||||
| 3331 | gives the eight bits of C |
||||||
| 3332 | be set automatically, and, shifted up eight bits, the eight bits of | ||||||
| 3333 | C |
||||||
| 3334 | set as required. I |
||||||
| 3335 | the slice; they are consumed by this function and become part of the | ||||||
| 3336 | constructed op tree. | ||||||
| 3337 | |||||||
| 3338 | OP * newSLICEOP(I32 flags, OP *subscript, | ||||||
| 3339 | OP *listval)'},'newSTATEOP' => {'name' => 'newSTATEOP','text' => 'Constructs a state op (COP). The state op is normally a C |
||||||
| 3340 | but will be a C |
||||||
| 3341 | code. The state op is populated from C |
||||||
| 3342 | If I | ||||||
| 3343 | the state op; this function takes ownership of the memory pointed at by | ||||||
| 3344 | I | ||||||
| 3345 | for the state op. | ||||||
| 3346 | |||||||
| 3347 | If I |
||||||
| 3348 | combined with I |
||||||
| 3349 | is consumed by this function and becomes part of the returned op tree. | ||||||
| 3350 | |||||||
| 3351 | OP * newSTATEOP(I32 flags, char *label, OP *o)'},'newSUB' => {'name' => 'newSUB','text' => ''},'newSV' => {'name' => 'newSV','text' => 'Creates a new SV. A non-zero C |
||||||
| 3352 | bytes of preallocated string space the SV should have. An extra byte for a | ||||||
| 3353 | trailing C |
||||||
| 3354 | space is allocated.) The reference count for the new SV is set to 1. | ||||||
| 3355 | |||||||
| 3356 | In 5.9.3, newSV() replaces the older NEWSV() API, and drops the first | ||||||
| 3357 | parameter, I |
||||||
| 3358 | This aid has been superseded by a new build option, PERL_MEM_LOG (see | ||||||
| 3359 | L |
||||||
| 3360 | modules supporting older perls. | ||||||
| 3361 | |||||||
| 3362 | SV* newSV(const STRLEN len)'},'newSVOP' => {'name' => 'newSVOP','text' => 'Constructs, checks, and returns an op of any type that involves an | ||||||
| 3363 | embedded SV. I |
||||||
| 3364 | of C |
||||||
| 3365 | takes ownership of one reference to it. | ||||||
| 3366 | |||||||
| 3367 | OP * newSVOP(I32 type, I32 flags, SV *sv)'},'newSVREF' => {'name' => 'newSVREF','text' => ''},'newSV_type' => {'name' => 'newSV_type','text' => 'Creates a new SV, of the type specified. The reference count for the new SV | ||||||
| 3368 | is set to 1. | ||||||
| 3369 | |||||||
| 3370 | SV* newSV_type(const svtype type)'},'newSVhek' => {'name' => 'newSVhek','text' => 'Creates a new SV from the hash key structure. It will generate scalars that | ||||||
| 3371 | point to the shared string table where possible. Returns a new (undefined) | ||||||
| 3372 | SV if the hek is NULL. | ||||||
| 3373 | |||||||
| 3374 | SV* newSVhek(const HEK *const hek)'},'newSViv' => {'name' => 'newSViv','text' => 'Creates a new SV and copies an integer into it. The reference count for the | ||||||
| 3375 | SV is set to 1. | ||||||
| 3376 | |||||||
| 3377 | SV* newSViv(const IV i)'},'newSVnv' => {'name' => 'newSVnv','text' => 'Creates a new SV and copies a floating point value into it. | ||||||
| 3378 | The reference count for the SV is set to 1. | ||||||
| 3379 | |||||||
| 3380 | SV* newSVnv(const NV n)'},'newSVpadname' => {'name' => 'newSVpadname','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3381 | removed without notice. | ||||||
| 3382 | |||||||
| 3383 | |||||||
| 3384 | Creates a new SV containing the pad name. This is currently identical | ||||||
| 3385 | to C |
||||||
| 3386 | C |
||||||
| 3387 | |||||||
| 3388 | SV* newSVpadname(PADNAME *pn)'},'newSVpv' => {'name' => 'newSVpv','text' => 'Creates a new SV and copies a string (which may contain C |
||||||
| 3389 | characters) into it. The reference count for the | ||||||
| 3390 | SV is set to 1. If C |
||||||
| 3391 | strlen(), (which means if you use this option, that C |
||||||
| 3392 | C |
||||||
| 3393 | |||||||
| 3394 | For efficiency, consider using C |
||||||
| 3395 | |||||||
| 3396 | SV* newSVpv(const char *const s, const STRLEN len)'},'newSVpv_share' => {'name' => 'newSVpv_share','text' => 'Like C |
||||||
| 3397 | string/length pair. | ||||||
| 3398 | |||||||
| 3399 | SV* newSVpv_share(const char* s, U32 hash)'},'newSVpvf' => {'name' => 'newSVpvf','text' => 'Creates a new SV and initializes it with the string formatted like | ||||||
| 3400 | C |
||||||
| 3401 | |||||||
| 3402 | SV* newSVpvf(const char *const pat, ...)'},'newSVpvf_nocontext' => {'name' => 'newSVpvf_nocontext','text' => ''},'newSVpvn' => {'name' => 'newSVpvn','text' => 'Creates a new SV and copies a string into it, which may contain C |
||||||
| 3403 | (C<\\0>) and other binary data. The reference count for the SV is set to 1. | ||||||
| 3404 | Note that if C |
||||||
| 3405 | are responsible for ensuring that the source buffer is at least | ||||||
| 3406 | C |
||||||
| 3407 | undefined. | ||||||
| 3408 | |||||||
| 3409 | SV* newSVpvn(const char *const s, const STRLEN len)'},'newSVpvn_flags' => {'name' => 'newSVpvn_flags','text' => 'Creates a new SV and copies a string (which may contain C |
||||||
| 3410 | characters) into it. The reference count for the | ||||||
| 3411 | SV is set to 1. Note that if C |
||||||
| 3412 | string. You are responsible for ensuring that the source string is at least | ||||||
| 3413 | C |
||||||
| 3414 | Currently the only flag bits accepted are C |
||||||
| 3415 | If C |
||||||
| 3416 | returning. If C |
||||||
| 3417 | is considered to be in UTF-8 and the | ||||||
| 3418 | C |
||||||
| 3419 | C |
||||||
| 3420 | |||||||
| 3421 | #define newSVpvn_utf8(s, len, u) \\ | ||||||
| 3422 | newSVpvn_flags((s), (len), (u) ? SVf_UTF8 : 0) | ||||||
| 3423 | |||||||
| 3424 | SV* newSVpvn_flags(const char *const s, | ||||||
| 3425 | const STRLEN len, | ||||||
| 3426 | const U32 flags)'},'newSVpvn_share' => {'name' => 'newSVpvn_share','text' => 'Creates a new SV with its SvPVX_const pointing to a shared string in the string | ||||||
| 3427 | table. If the string does not already exist in the table, it is | ||||||
| 3428 | created first. Turns on the SvIsCOW flag (or READONLY | ||||||
| 3429 | and FAKE in 5.16 and earlier). If the C |
||||||
| 3430 | is non-zero, that value is used; otherwise the hash is computed. | ||||||
| 3431 | The string\'s hash can later be retrieved from the SV | ||||||
| 3432 | with the C |
||||||
| 3433 | that as the string table is used for shared hash keys these strings will have | ||||||
| 3434 | SvPVX_const == HeKEY and hash lookup will avoid string compare. | ||||||
| 3435 | |||||||
| 3436 | SV* newSVpvn_share(const char* s, I32 len, U32 hash)'},'newSVpvn_utf8' => {'name' => 'newSVpvn_utf8','text' => 'Creates a new SV and copies a string (which may contain C |
||||||
| 3437 | characters) into it. If utf8 is true, calls | ||||||
| 3438 | C |
||||||
| 3439 | |||||||
| 3440 | SV* newSVpvn_utf8(NULLOK const char* s, STRLEN len, | ||||||
| 3441 | U32 utf8)'},'newSVpvs' => {'name' => 'newSVpvs','text' => 'Like C |
||||||
| 3442 | string/length pair. | ||||||
| 3443 | |||||||
| 3444 | SV* newSVpvs(const char* s)'},'newSVpvs_flags' => {'name' => 'newSVpvs_flags','text' => 'Like C |
||||||
| 3445 | a string/length pair. | ||||||
| 3446 | |||||||
| 3447 | SV* newSVpvs_flags(const char* s, U32 flags)'},'newSVpvs_share' => {'name' => 'newSVpvs_share','text' => 'Like C |
||||||
| 3448 | a string/length pair and omits the hash parameter. | ||||||
| 3449 | |||||||
| 3450 | SV* newSVpvs_share(const char* s)'},'newSVrv' => {'name' => 'newSVrv','text' => 'Creates a new SV for the existing RV, C |
||||||
| 3451 | RV then it will be upgraded to one. If C |
||||||
| 3452 | SV will be blessed in the specified package. The new SV is returned and its | ||||||
| 3453 | reference count is 1. The reference count 1 is owned by C |
||||||
| 3454 | |||||||
| 3455 | SV* newSVrv(SV *const rv, | ||||||
| 3456 | const char *const classname)'},'newSVsv' => {'name' => 'newSVsv','text' => 'Creates a new SV which is an exact duplicate of the original SV. | ||||||
| 3457 | (Uses C |
||||||
| 3458 | |||||||
| 3459 | SV* newSVsv(SV *const old)'},'newSVuv' => {'name' => 'newSVuv','text' => 'Creates a new SV and copies an unsigned integer into it. | ||||||
| 3460 | The reference count for the SV is set to 1. | ||||||
| 3461 | |||||||
| 3462 | SV* newSVuv(const UV u)'},'newUNOP' => {'name' => 'newUNOP','text' => 'Constructs, checks, and returns an op of any unary type. I |
||||||
| 3463 | the opcode. I |
||||||
| 3464 | C |
||||||
| 3465 | bits, the eight bits of C |
||||||
| 3466 | is automatically set. I |
||||||
| 3467 | child of the unary op; it is consumed by this function and become part | ||||||
| 3468 | of the constructed op tree. | ||||||
| 3469 | |||||||
| 3470 | OP * newUNOP(I32 type, I32 flags, OP *first)'},'newWHENOP' => {'name' => 'newWHENOP','text' => 'Constructs, checks, and returns an op tree expressing a C |
||||||
| 3471 | I |
||||||
| 3472 | that will be executed if the test evaluates to true; they are consumed | ||||||
| 3473 | by this function and become part of the constructed op tree. I |
||||||
| 3474 | will be interpreted DWIMically, often as a comparison against C<$_>, | ||||||
| 3475 | and may be null to generate a C |
||||||
| 3476 | |||||||
| 3477 | OP * newWHENOP(OP *cond, OP *block)'},'newWHILEOP' => {'name' => 'newWHILEOP','text' => 'Constructs, checks, and returns an op tree expressing a C |
||||||
| 3478 | This is a heavyweight loop, with structure that allows exiting the loop | ||||||
| 3479 | by C |
||||||
| 3480 | |||||||
| 3481 | I |
||||||
| 3482 | loop; if it is null then a suitable op will be constructed automatically. | ||||||
| 3483 | I |
||||||
| 3484 | main body of the loop, and I |
||||||
| 3485 | that operates as a second half of the body. All of these optree inputs | ||||||
| 3486 | are consumed by this function and become part of the constructed op tree. | ||||||
| 3487 | |||||||
| 3488 | I |
||||||
| 3489 | op and, shifted up eight bits, the eight bits of C |
||||||
| 3490 | the C |
||||||
| 3491 | automatically. I |
||||||
| 3492 | I |
||||||
| 3493 | loop body to be enclosed in its own scope. | ||||||
| 3494 | |||||||
| 3495 | OP * newWHILEOP(I32 flags, I32 debuggable, | ||||||
| 3496 | LOOP *loop, OP *expr, OP *block, | ||||||
| 3497 | OP *cont, I32 has_my)'},'newXS' => {'name' => 'newXS','text' => 'Used by C |
||||||
| 3498 | static storage, as it is used directly as CvFILE(), without a copy being made.'},'newXSproto' => {'name' => 'newXSproto','text' => 'Used by C |
||||||
| 3499 | the subs.'},'new_stackinfo' => {'name' => 'new_stackinfo','text' => ''},'new_version' => {'name' => 'new_version','text' => 'Returns a new version object based on the passed in SV: | ||||||
| 3500 | |||||||
| 3501 | SV *sv = new_version(SV *ver); | ||||||
| 3502 | |||||||
| 3503 | Does not alter the passed in ver SV. See "upg_version" if you | ||||||
| 3504 | want to upgrade the SV. | ||||||
| 3505 | |||||||
| 3506 | SV* new_version(SV *ver)'},'ninstr' => {'name' => 'ninstr','text' => ''},'nothreadhook' => {'name' => 'nothreadhook','text' => 'Stub that provides thread hook for perl_destruct when there are | ||||||
| 3507 | no threads. | ||||||
| 3508 | |||||||
| 3509 | int nothreadhook()'},'op_append_elem' => {'name' => 'op_append_elem','text' => 'Append an item to the list of ops contained directly within a list-type | ||||||
| 3510 | op, returning the lengthened list. I |
||||||
| 3511 | and I |
||||||
| 3512 | intended opcode for the list. If I |
||||||
| 3513 | right type, it will be upgraded into one. If either I |
||||||
| 3514 | is null, the other is returned unchanged. | ||||||
| 3515 | |||||||
| 3516 | OP * op_append_elem(I32 optype, OP *first, OP *last)'},'op_append_list' => {'name' => 'op_append_list','text' => 'Concatenate the lists of ops contained directly within two list-type ops, | ||||||
| 3517 | returning the combined list. I |
||||||
| 3518 | to concatenate. I |
||||||
| 3519 | If either I |
||||||
| 3520 | it will be upgraded into one. If either I |
||||||
| 3521 | the other is returned unchanged. | ||||||
| 3522 | |||||||
| 3523 | OP * op_append_list(I32 optype, OP *first, OP *last)'},'op_contextualize' => {'name' => 'op_contextualize','text' => 'Applies a syntactic context to an op tree representing an expression. | ||||||
| 3524 | I |
||||||
| 3525 | or C |
||||||
| 3526 | is returned. | ||||||
| 3527 | |||||||
| 3528 | OP * op_contextualize(OP *o, I32 context)'},'op_dump' => {'name' => 'op_dump','text' => 'Dumps the optree starting at OP C |
||||||
| 3529 | |||||||
| 3530 | void op_dump(const OP *o)'},'op_free' => {'name' => 'op_free','text' => 'Free an op. Only use this when an op is no longer linked to from any | ||||||
| 3531 | optree. | ||||||
| 3532 | |||||||
| 3533 | void op_free(OP *o)'},'op_linklist' => {'name' => 'op_linklist','text' => 'This function is the implementation of the L macro. It should | ||||||
| 3534 | not be called directly. | ||||||
| 3535 | |||||||
| 3536 | OP* op_linklist(OP *o)'},'op_lvalue' => {'name' => 'op_lvalue','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3537 | removed without notice. | ||||||
| 3538 | |||||||
| 3539 | |||||||
| 3540 | Propagate lvalue ("modifiable") context to an op and its children. | ||||||
| 3541 | I |
||||||
| 3542 | would do the modifying, although C |
||||||
| 3543 | because it has no op type of its own (it is signalled by a flag on | ||||||
| 3544 | the lvalue op). | ||||||
| 3545 | |||||||
| 3546 | This function detects things that can\'t be modified, such as C<$x+1>, and | ||||||
| 3547 | generates errors for them. For example, C<$x+1 = 2> would cause it to be | ||||||
| 3548 | called with an op of type OP_ADD and a C |
||||||
| 3549 | |||||||
| 3550 | It also flags things that need to behave specially in an lvalue context, | ||||||
| 3551 | such as C<$$x = 5> which might have to vivify a reference in C<$x>. | ||||||
| 3552 | |||||||
| 3553 | OP * op_lvalue(OP *o, I32 type)'},'op_null' => {'name' => 'op_null','text' => 'Neutralizes an op when it is no longer needed, but is still linked to from | ||||||
| 3554 | other ops. | ||||||
| 3555 | |||||||
| 3556 | void op_null(OP *o)'},'op_prepend_elem' => {'name' => 'op_prepend_elem','text' => 'Prepend an item to the list of ops contained directly within a list-type | ||||||
| 3557 | op, returning the lengthened list. I |
||||||
| 3558 | list, and I |
||||||
| 3559 | opcode for the list. If I |
||||||
| 3560 | it will be upgraded into one. If either I |
||||||
| 3561 | the other is returned unchanged. | ||||||
| 3562 | |||||||
| 3563 | OP * op_prepend_elem(I32 optype, OP *first, OP *last)'},'op_refcnt_lock' => {'name' => 'op_refcnt_lock','text' => ''},'op_refcnt_unlock' => {'name' => 'op_refcnt_unlock','text' => ''},'op_scope' => {'name' => 'op_scope','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3564 | removed without notice. | ||||||
| 3565 | |||||||
| 3566 | |||||||
| 3567 | Wraps up an op tree with some additional ops so that at runtime a dynamic | ||||||
| 3568 | scope will be created. The original ops run in the new dynamic scope, | ||||||
| 3569 | and then, provided that they exit normally, the scope will be unwound. | ||||||
| 3570 | The additional ops used to create and unwind the dynamic scope will | ||||||
| 3571 | normally be an C |
||||||
| 3572 | instead if the ops are simple enough to not need the full dynamic scope | ||||||
| 3573 | structure. | ||||||
| 3574 | |||||||
| 3575 | OP * op_scope(OP *o)'},'pack_cat' => {'name' => 'pack_cat','text' => 'The engine implementing pack() Perl function. Note: parameters | ||||||
| 3576 | next_in_list and flags are not used. This call should not be used; use | ||||||
| 3577 | packlist instead. | ||||||
| 3578 | |||||||
| 3579 | void pack_cat(SV *cat, const char *pat, | ||||||
| 3580 | const char *patend, SV **beglist, | ||||||
| 3581 | SV **endlist, SV ***next_in_list, | ||||||
| 3582 | U32 flags)'},'packlist' => {'name' => 'packlist','text' => 'The engine implementing pack() Perl function. | ||||||
| 3583 | |||||||
| 3584 | void packlist(SV *cat, const char *pat, | ||||||
| 3585 | const char *patend, SV **beglist, | ||||||
| 3586 | SV **endlist)'},'pad_add_anon' => {'name' => 'pad_add_anon','text' => 'Allocates a place in the currently-compiling pad (via L) | ||||||
| 3587 | for an anonymous function that is lexically scoped inside the | ||||||
| 3588 | currently-compiling function. | ||||||
| 3589 | The function I |
||||||
| 3590 | to the outer scope is weakened to avoid a reference loop. | ||||||
| 3591 | |||||||
| 3592 | One reference count is stolen, so you may need to do C |
||||||
| 3593 | |||||||
| 3594 | I |
||||||
| 3595 | pad entry is to support. This doesn\'t affect operational semantics, | ||||||
| 3596 | but is used for debugging. | ||||||
| 3597 | |||||||
| 3598 | PADOFFSET pad_add_anon(CV *func, I32 optype)'},'pad_add_name_pv' => {'name' => 'pad_add_name_pv','text' => 'Exactly like L, but takes a nul-terminated string | ||||||
| 3599 | instead of a string/length pair. | ||||||
| 3600 | |||||||
| 3601 | PADOFFSET pad_add_name_pv(const char *name, U32 flags, | ||||||
| 3602 | HV *typestash, HV *ourstash)'},'pad_add_name_pvn' => {'name' => 'pad_add_name_pvn','text' => 'Allocates a place in the currently-compiling pad for a named lexical | ||||||
| 3603 | variable. Stores the name and other metadata in the name part of the | ||||||
| 3604 | pad, and makes preparations to manage the variable\'s lexical scoping. | ||||||
| 3605 | Returns the offset of the allocated pad slot. | ||||||
| 3606 | |||||||
| 3607 | I |
||||||
| 3608 | If I |
||||||
| 3609 | identifies the type. If I |
||||||
| 3610 | to a package variable, and this identifies the package. The following | ||||||
| 3611 | flags can be OR\'ed together: | ||||||
| 3612 | |||||||
| 3613 | padadd_OUR redundantly specifies if it\'s a package var | ||||||
| 3614 | padadd_STATE variable will retain value persistently | ||||||
| 3615 | padadd_NO_DUP_CHECK skip check for lexical shadowing | ||||||
| 3616 | |||||||
| 3617 | PADOFFSET pad_add_name_pvn(const char *namepv, | ||||||
| 3618 | STRLEN namelen, U32 flags, | ||||||
| 3619 | HV *typestash, HV *ourstash)'},'pad_add_name_pvs' => {'name' => 'pad_add_name_pvs','text' => 'Exactly like L, but takes a literal string instead | ||||||
| 3620 | of a string/length pair. | ||||||
| 3621 | |||||||
| 3622 | PADOFFSET pad_add_name_pvs(const char *name, U32 flags, | ||||||
| 3623 | HV *typestash, HV *ourstash)'},'pad_add_name_sv' => {'name' => 'pad_add_name_sv','text' => 'Exactly like L, but takes the name string in the form | ||||||
| 3624 | of an SV instead of a string/length pair. | ||||||
| 3625 | |||||||
| 3626 | PADOFFSET pad_add_name_sv(SV *name, U32 flags, | ||||||
| 3627 | HV *typestash, HV *ourstash)'},'pad_alloc' => {'name' => 'pad_alloc','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3628 | removed without notice. | ||||||
| 3629 | |||||||
| 3630 | |||||||
| 3631 | Allocates a place in the currently-compiling pad, | ||||||
| 3632 | returning the offset of the allocated pad slot. | ||||||
| 3633 | No name is initially attached to the pad slot. | ||||||
| 3634 | I |
||||||
| 3635 | which will be set in the value SV for the allocated pad entry: | ||||||
| 3636 | |||||||
| 3637 | SVs_PADMY named lexical variable ("my", "our", "state") | ||||||
| 3638 | SVs_PADTMP unnamed temporary store | ||||||
| 3639 | SVf_READONLY constant shared between recursion levels | ||||||
| 3640 | |||||||
| 3641 | C |
||||||
| 3642 | earlier versions as well, use C |
||||||
| 3643 | does not cause the SV in the pad slot to be marked read-only, but simply | ||||||
| 3644 | tells C |
||||||
| 3645 | least should be treated as such. | ||||||
| 3646 | |||||||
| 3647 | I |
||||||
| 3648 | pad entry is to support. This doesn\'t affect operational semantics, | ||||||
| 3649 | but is used for debugging. | ||||||
| 3650 | |||||||
| 3651 | PADOFFSET pad_alloc(I32 optype, U32 tmptype)'},'pad_compname_type' => {'name' => 'pad_compname_type','text' => 'Looks up the type of the lexical variable at position I |
||||||
| 3652 | currently-compiling pad. If the variable is typed, the stash of the | ||||||
| 3653 | class to which it is typed is returned. If not, C |
||||||
| 3654 | |||||||
| 3655 | HV * pad_compname_type(PADOFFSET po)'},'pad_findmy_pv' => {'name' => 'pad_findmy_pv','text' => 'Exactly like L, but takes a nul-terminated string | ||||||
| 3656 | instead of a string/length pair. | ||||||
| 3657 | |||||||
| 3658 | PADOFFSET pad_findmy_pv(const char *name, U32 flags)'},'pad_findmy_pvn' => {'name' => 'pad_findmy_pvn','text' => 'Given the name of a lexical variable, find its position in the | ||||||
| 3659 | currently-compiling pad. | ||||||
| 3660 | I |
||||||
| 3661 | I |
||||||
| 3662 | If it is not in the current pad but appears in the pad of any lexically | ||||||
| 3663 | enclosing scope, then a pseudo-entry for it is added in the current pad. | ||||||
| 3664 | Returns the offset in the current pad, | ||||||
| 3665 | or C |
||||||
| 3666 | |||||||
| 3667 | PADOFFSET pad_findmy_pvn(const char *namepv, | ||||||
| 3668 | STRLEN namelen, U32 flags)'},'pad_findmy_pvs' => {'name' => 'pad_findmy_pvs','text' => 'Exactly like L, but takes a literal string instead | ||||||
| 3669 | of a string/length pair. | ||||||
| 3670 | |||||||
| 3671 | PADOFFSET pad_findmy_pvs(const char *name, U32 flags)'},'pad_findmy_sv' => {'name' => 'pad_findmy_sv','text' => 'Exactly like L, but takes the name string in the form | ||||||
| 3672 | of an SV instead of a string/length pair. | ||||||
| 3673 | |||||||
| 3674 | PADOFFSET pad_findmy_sv(SV *name, U32 flags)'},'pad_new' => {'name' => 'pad_new','text' => 'Create a new padlist, updating the global variables for the | ||||||
| 3675 | currently-compiling padlist to point to the new padlist. The following | ||||||
| 3676 | flags can be OR\'ed together: | ||||||
| 3677 | |||||||
| 3678 | padnew_CLONE this pad is for a cloned CV | ||||||
| 3679 | padnew_SAVE save old globals on the save stack | ||||||
| 3680 | padnew_SAVESUB also save extra stuff for start of sub | ||||||
| 3681 | |||||||
| 3682 | PADLIST * pad_new(int flags)'},'pad_setsv' => {'name' => 'pad_setsv','text' => 'Set the value at offset I |
||||||
| 3683 | Use the macro PAD_SETSV() rather than calling this function directly. | ||||||
| 3684 | |||||||
| 3685 | void pad_setsv(PADOFFSET po, SV *sv)'},'pad_sv' => {'name' => 'pad_sv','text' => 'Get the value at offset I |
||||||
| 3686 | Use macro PAD_SV instead of calling this function directly. | ||||||
| 3687 | |||||||
| 3688 | SV * pad_sv(PADOFFSET po)'},'pad_tidy' => {'name' => 'pad_tidy','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3689 | removed without notice. | ||||||
| 3690 | |||||||
| 3691 | |||||||
| 3692 | Tidy up a pad at the end of compilation of the code to which it belongs. | ||||||
| 3693 | Jobs performed here are: remove most stuff from the pads of anonsub | ||||||
| 3694 | prototypes; give it a @_; mark temporaries as such. I |
||||||
| 3695 | the kind of subroutine: | ||||||
| 3696 | |||||||
| 3697 | padtidy_SUB ordinary subroutine | ||||||
| 3698 | padtidy_SUBCLONE prototype for lexical closure | ||||||
| 3699 | padtidy_FORMAT format | ||||||
| 3700 | |||||||
| 3701 | void pad_tidy(padtidy_type type)'},'parse_arithexpr' => {'name' => 'parse_arithexpr','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3702 | removed without notice. | ||||||
| 3703 | |||||||
| 3704 | |||||||
| 3705 | Parse a Perl arithmetic expression. This may contain operators of precedence | ||||||
| 3706 | down to the bit shift operators. The expression must be followed (and thus | ||||||
| 3707 | terminated) either by a comparison or lower-precedence operator or by | ||||||
| 3708 | something that would normally terminate an expression such as semicolon. | ||||||
| 3709 | If I |
||||||
| 3710 | otherwise it is mandatory. It is up to the caller to ensure that the | ||||||
| 3711 | dynamic parser state (L et al) is correctly set to reflect | ||||||
| 3712 | the source of the code to be parsed and the lexical context for the | ||||||
| 3713 | expression. | ||||||
| 3714 | |||||||
| 3715 | The op tree representing the expression is returned. If an optional | ||||||
| 3716 | expression is absent, a null pointer is returned, otherwise the pointer | ||||||
| 3717 | will be non-null. | ||||||
| 3718 | |||||||
| 3719 | If an error occurs in parsing or compilation, in most cases a valid op | ||||||
| 3720 | tree is returned anyway. The error is reflected in the parser state, | ||||||
| 3721 | normally resulting in a single exception at the top level of parsing | ||||||
| 3722 | which covers all the compilation errors that occurred. Some compilation | ||||||
| 3723 | errors, however, will throw an exception immediately. | ||||||
| 3724 | |||||||
| 3725 | OP * parse_arithexpr(U32 flags)'},'parse_barestmt' => {'name' => 'parse_barestmt','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3726 | removed without notice. | ||||||
| 3727 | |||||||
| 3728 | |||||||
| 3729 | Parse a single unadorned Perl statement. This may be a normal imperative | ||||||
| 3730 | statement or a declaration that has compile-time effect. It does not | ||||||
| 3731 | include any label or other affixture. It is up to the caller to ensure | ||||||
| 3732 | that the dynamic parser state (L et al) is correctly set to | ||||||
| 3733 | reflect the source of the code to be parsed and the lexical context for | ||||||
| 3734 | the statement. | ||||||
| 3735 | |||||||
| 3736 | The op tree representing the statement is returned. This may be a | ||||||
| 3737 | null pointer if the statement is null, for example if it was actually | ||||||
| 3738 | a subroutine definition (which has compile-time side effects). If not | ||||||
| 3739 | null, it will be ops directly implementing the statement, suitable to | ||||||
| 3740 | pass to L. It will not normally include a C |
||||||
| 3741 | equivalent op (except for those embedded in a scope contained entirely | ||||||
| 3742 | within the statement). | ||||||
| 3743 | |||||||
| 3744 | If an error occurs in parsing or compilation, in most cases a valid op | ||||||
| 3745 | tree (most likely null) is returned anyway. The error is reflected in | ||||||
| 3746 | the parser state, normally resulting in a single exception at the top | ||||||
| 3747 | level of parsing which covers all the compilation errors that occurred. | ||||||
| 3748 | Some compilation errors, however, will throw an exception immediately. | ||||||
| 3749 | |||||||
| 3750 | The I |
||||||
| 3751 | be zero. | ||||||
| 3752 | |||||||
| 3753 | OP * parse_barestmt(U32 flags)'},'parse_block' => {'name' => 'parse_block','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3754 | removed without notice. | ||||||
| 3755 | |||||||
| 3756 | |||||||
| 3757 | Parse a single complete Perl code block. This consists of an opening | ||||||
| 3758 | brace, a sequence of statements, and a closing brace. The block | ||||||
| 3759 | constitutes a lexical scope, so C |
||||||
| 3760 | effects can be contained within it. It is up to the caller to ensure | ||||||
| 3761 | that the dynamic parser state (L et al) is correctly set to | ||||||
| 3762 | reflect the source of the code to be parsed and the lexical context for | ||||||
| 3763 | the statement. | ||||||
| 3764 | |||||||
| 3765 | The op tree representing the code block is returned. This is always a | ||||||
| 3766 | real op, never a null pointer. It will normally be a C |
||||||
| 3767 | including C |
||||||
| 3768 | of runtime scope are included by virtue of it being a block. | ||||||
| 3769 | |||||||
| 3770 | If an error occurs in parsing or compilation, in most cases a valid op | ||||||
| 3771 | tree (most likely null) is returned anyway. The error is reflected in | ||||||
| 3772 | the parser state, normally resulting in a single exception at the top | ||||||
| 3773 | level of parsing which covers all the compilation errors that occurred. | ||||||
| 3774 | Some compilation errors, however, will throw an exception immediately. | ||||||
| 3775 | |||||||
| 3776 | The I |
||||||
| 3777 | be zero. | ||||||
| 3778 | |||||||
| 3779 | OP * parse_block(U32 flags)'},'parse_fullexpr' => {'name' => 'parse_fullexpr','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3780 | removed without notice. | ||||||
| 3781 | |||||||
| 3782 | |||||||
| 3783 | Parse a single complete Perl expression. This allows the full | ||||||
| 3784 | expression grammar, including the lowest-precedence operators such | ||||||
| 3785 | as C |
||||||
| 3786 | token that an expression would normally be terminated by: end-of-file, | ||||||
| 3787 | closing bracketing punctuation, semicolon, or one of the keywords that | ||||||
| 3788 | signals a postfix expression-statement modifier. If I |
||||||
| 3789 | C |
||||||
| 3790 | mandatory. It is up to the caller to ensure that the dynamic parser | ||||||
| 3791 | state (L et al) is correctly set to reflect the source of | ||||||
| 3792 | the code to be parsed and the lexical context for the expression. | ||||||
| 3793 | |||||||
| 3794 | The op tree representing the expression is returned. If an optional | ||||||
| 3795 | expression is absent, a null pointer is returned, otherwise the pointer | ||||||
| 3796 | will be non-null. | ||||||
| 3797 | |||||||
| 3798 | If an error occurs in parsing or compilation, in most cases a valid op | ||||||
| 3799 | tree is returned anyway. The error is reflected in the parser state, | ||||||
| 3800 | normally resulting in a single exception at the top level of parsing | ||||||
| 3801 | which covers all the compilation errors that occurred. Some compilation | ||||||
| 3802 | errors, however, will throw an exception immediately. | ||||||
| 3803 | |||||||
| 3804 | OP * parse_fullexpr(U32 flags)'},'parse_fullstmt' => {'name' => 'parse_fullstmt','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3805 | removed without notice. | ||||||
| 3806 | |||||||
| 3807 | |||||||
| 3808 | Parse a single complete Perl statement. This may be a normal imperative | ||||||
| 3809 | statement or a declaration that has compile-time effect, and may include | ||||||
| 3810 | optional labels. It is up to the caller to ensure that the dynamic | ||||||
| 3811 | parser state (L et al) is correctly set to reflect the source | ||||||
| 3812 | of the code to be parsed and the lexical context for the statement. | ||||||
| 3813 | |||||||
| 3814 | The op tree representing the statement is returned. This may be a | ||||||
| 3815 | null pointer if the statement is null, for example if it was actually | ||||||
| 3816 | a subroutine definition (which has compile-time side effects). If not | ||||||
| 3817 | null, it will be the result of a L call, normally including | ||||||
| 3818 | a C |
||||||
| 3819 | |||||||
| 3820 | If an error occurs in parsing or compilation, in most cases a valid op | ||||||
| 3821 | tree (most likely null) is returned anyway. The error is reflected in | ||||||
| 3822 | the parser state, normally resulting in a single exception at the top | ||||||
| 3823 | level of parsing which covers all the compilation errors that occurred. | ||||||
| 3824 | Some compilation errors, however, will throw an exception immediately. | ||||||
| 3825 | |||||||
| 3826 | The I |
||||||
| 3827 | be zero. | ||||||
| 3828 | |||||||
| 3829 | OP * parse_fullstmt(U32 flags)'},'parse_label' => {'name' => 'parse_label','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3830 | removed without notice. | ||||||
| 3831 | |||||||
| 3832 | |||||||
| 3833 | Parse a single label, possibly optional, of the type that may prefix a | ||||||
| 3834 | Perl statement. It is up to the caller to ensure that the dynamic parser | ||||||
| 3835 | state (L et al) is correctly set to reflect the source of | ||||||
| 3836 | the code to be parsed. If I |
||||||
| 3837 | label is optional, otherwise it is mandatory. | ||||||
| 3838 | |||||||
| 3839 | The name of the label is returned in the form of a fresh scalar. If an | ||||||
| 3840 | optional label is absent, a null pointer is returned. | ||||||
| 3841 | |||||||
| 3842 | If an error occurs in parsing, which can only occur if the label is | ||||||
| 3843 | mandatory, a valid label is returned anyway. The error is reflected in | ||||||
| 3844 | the parser state, normally resulting in a single exception at the top | ||||||
| 3845 | level of parsing which covers all the compilation errors that occurred. | ||||||
| 3846 | |||||||
| 3847 | SV * parse_label(U32 flags)'},'parse_listexpr' => {'name' => 'parse_listexpr','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3848 | removed without notice. | ||||||
| 3849 | |||||||
| 3850 | |||||||
| 3851 | Parse a Perl list expression. This may contain operators of precedence | ||||||
| 3852 | down to the comma operator. The expression must be followed (and thus | ||||||
| 3853 | terminated) either by a low-precedence logic operator such as C |
||||||
| 3854 | something that would normally terminate an expression such as semicolon. | ||||||
| 3855 | If I |
||||||
| 3856 | otherwise it is mandatory. It is up to the caller to ensure that the | ||||||
| 3857 | dynamic parser state (L et al) is correctly set to reflect | ||||||
| 3858 | the source of the code to be parsed and the lexical context for the | ||||||
| 3859 | expression. | ||||||
| 3860 | |||||||
| 3861 | The op tree representing the expression is returned. If an optional | ||||||
| 3862 | expression is absent, a null pointer is returned, otherwise the pointer | ||||||
| 3863 | will be non-null. | ||||||
| 3864 | |||||||
| 3865 | If an error occurs in parsing or compilation, in most cases a valid op | ||||||
| 3866 | tree is returned anyway. The error is reflected in the parser state, | ||||||
| 3867 | normally resulting in a single exception at the top level of parsing | ||||||
| 3868 | which covers all the compilation errors that occurred. Some compilation | ||||||
| 3869 | errors, however, will throw an exception immediately. | ||||||
| 3870 | |||||||
| 3871 | OP * parse_listexpr(U32 flags)'},'parse_stmtseq' => {'name' => 'parse_stmtseq','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3872 | removed without notice. | ||||||
| 3873 | |||||||
| 3874 | |||||||
| 3875 | Parse a sequence of zero or more Perl statements. These may be normal | ||||||
| 3876 | imperative statements, including optional labels, or declarations | ||||||
| 3877 | that have compile-time effect, or any mixture thereof. The statement | ||||||
| 3878 | sequence ends when a closing brace or end-of-file is encountered in a | ||||||
| 3879 | place where a new statement could have validly started. It is up to | ||||||
| 3880 | the caller to ensure that the dynamic parser state (L et al) | ||||||
| 3881 | is correctly set to reflect the source of the code to be parsed and the | ||||||
| 3882 | lexical context for the statements. | ||||||
| 3883 | |||||||
| 3884 | The op tree representing the statement sequence is returned. This may | ||||||
| 3885 | be a null pointer if the statements were all null, for example if there | ||||||
| 3886 | were no statements or if there were only subroutine definitions (which | ||||||
| 3887 | have compile-time side effects). If not null, it will be a C |
||||||
| 3888 | list, normally including C |
||||||
| 3889 | |||||||
| 3890 | If an error occurs in parsing or compilation, in most cases a valid op | ||||||
| 3891 | tree is returned anyway. The error is reflected in the parser state, | ||||||
| 3892 | normally resulting in a single exception at the top level of parsing | ||||||
| 3893 | which covers all the compilation errors that occurred. Some compilation | ||||||
| 3894 | errors, however, will throw an exception immediately. | ||||||
| 3895 | |||||||
| 3896 | The I |
||||||
| 3897 | be zero. | ||||||
| 3898 | |||||||
| 3899 | OP * parse_stmtseq(U32 flags)'},'parse_termexpr' => {'name' => 'parse_termexpr','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 3900 | removed without notice. | ||||||
| 3901 | |||||||
| 3902 | |||||||
| 3903 | Parse a Perl term expression. This may contain operators of precedence | ||||||
| 3904 | down to the assignment operators. The expression must be followed (and thus | ||||||
| 3905 | terminated) either by a comma or lower-precedence operator or by | ||||||
| 3906 | something that would normally terminate an expression such as semicolon. | ||||||
| 3907 | If I |
||||||
| 3908 | otherwise it is mandatory. It is up to the caller to ensure that the | ||||||
| 3909 | dynamic parser state (L et al) is correctly set to reflect | ||||||
| 3910 | the source of the code to be parsed and the lexical context for the | ||||||
| 3911 | expression. | ||||||
| 3912 | |||||||
| 3913 | The op tree representing the expression is returned. If an optional | ||||||
| 3914 | expression is absent, a null pointer is returned, otherwise the pointer | ||||||
| 3915 | will be non-null. | ||||||
| 3916 | |||||||
| 3917 | If an error occurs in parsing or compilation, in most cases a valid op | ||||||
| 3918 | tree is returned anyway. The error is reflected in the parser state, | ||||||
| 3919 | normally resulting in a single exception at the top level of parsing | ||||||
| 3920 | which covers all the compilation errors that occurred. Some compilation | ||||||
| 3921 | errors, however, will throw an exception immediately. | ||||||
| 3922 | |||||||
| 3923 | OP * parse_termexpr(U32 flags)'},'parser_dup' => {'name' => 'parser_dup','text' => ''},'perl_alloc' => {'name' => 'perl_alloc','text' => 'Allocates a new Perl interpreter. See L |
||||||
| 3924 | |||||||
| 3925 | PerlInterpreter* perl_alloc()'},'perl_alloc_using' => {'name' => 'perl_alloc_using','text' => ''},'perl_clone' => {'name' => 'perl_clone','text' => 'Create and return a new interpreter by cloning the current one. | ||||||
| 3926 | |||||||
| 3927 | perl_clone takes these flags as parameters: | ||||||
| 3928 | |||||||
| 3929 | CLONEf_COPY_STACKS - is used to, well, copy the stacks also, | ||||||
| 3930 | without it we only clone the data and zero the stacks, | ||||||
| 3931 | with it we copy the stacks and the new perl interpreter is | ||||||
| 3932 | ready to run at the exact same point as the previous one. | ||||||
| 3933 | The pseudo-fork code uses COPY_STACKS while the | ||||||
| 3934 | threads->create doesn\'t. | ||||||
| 3935 | |||||||
| 3936 | CLONEf_KEEP_PTR_TABLE - | ||||||
| 3937 | perl_clone keeps a ptr_table with the pointer of the old | ||||||
| 3938 | variable as a key and the new variable as a value, | ||||||
| 3939 | this allows it to check if something has been cloned and not | ||||||
| 3940 | clone it again but rather just use the value and increase the | ||||||
| 3941 | refcount. If KEEP_PTR_TABLE is not set then perl_clone will kill | ||||||
| 3942 | the ptr_table using the function | ||||||
| 3943 | C |
||||||
| 3944 | reason to keep it around is if you want to dup some of your own | ||||||
| 3945 | variable who are outside the graph perl scans, example of this | ||||||
| 3946 | code is in threads.xs create. | ||||||
| 3947 | |||||||
| 3948 | CLONEf_CLONE_HOST - | ||||||
| 3949 | This is a win32 thing, it is ignored on unix, it tells perls | ||||||
| 3950 | win32host code (which is c++) to clone itself, this is needed on | ||||||
| 3951 | win32 if you want to run two threads at the same time, | ||||||
| 3952 | if you just want to do some stuff in a separate perl interpreter | ||||||
| 3953 | and then throw it away and return to the original one, | ||||||
| 3954 | you don\'t need to do anything. | ||||||
| 3955 | |||||||
| 3956 | PerlInterpreter* perl_clone( | ||||||
| 3957 | PerlInterpreter *proto_perl, | ||||||
| 3958 | UV flags | ||||||
| 3959 | )'},'perl_clone_using' => {'name' => 'perl_clone_using','text' => ''},'perl_construct' => {'name' => 'perl_construct','text' => 'Initializes a new Perl interpreter. See L |
||||||
| 3960 | |||||||
| 3961 | void perl_construct(PerlInterpreter *my_perl)'},'perl_destruct' => {'name' => 'perl_destruct','text' => 'Shuts down a Perl interpreter. See L |
||||||
| 3962 | |||||||
| 3963 | int perl_destruct(PerlInterpreter *my_perl)'},'perl_free' => {'name' => 'perl_free','text' => 'Releases a Perl interpreter. See L |
||||||
| 3964 | |||||||
| 3965 | void perl_free(PerlInterpreter *my_perl)'},'perl_parse' => {'name' => 'perl_parse','text' => 'Tells a Perl interpreter to parse a Perl script. See L |
||||||
| 3966 | |||||||
| 3967 | int perl_parse(PerlInterpreter *my_perl, | ||||||
| 3968 | XSINIT_t xsinit, int argc, | ||||||
| 3969 | char** argv, char** env)'},'perl_run' => {'name' => 'perl_run','text' => 'Tells a Perl interpreter to run. See L |
||||||
| 3970 | |||||||
| 3971 | int perl_run(PerlInterpreter *my_perl)'},'pmop_dump' => {'name' => 'pmop_dump','text' => ''},'pop_scope' => {'name' => 'pop_scope','text' => ''},'pregcomp' => {'name' => 'pregcomp','text' => ''},'pregexec' => {'name' => 'pregexec','text' => ''},'pregfree' => {'name' => 'pregfree','text' => ''},'pregfree2' => {'name' => 'pregfree2','text' => ''},'prescan_version' => {'name' => 'prescan_version','text' => 'Validate that a given string can be parsed as a version object, but doesn\'t | ||||||
| 3972 | actually perform the parsing. Can use either strict or lax validation rules. | ||||||
| 3973 | Can optionally set a number of hint variables to save the parsing code | ||||||
| 3974 | some time when tokenizing. | ||||||
| 3975 | |||||||
| 3976 | const char* prescan_version(const char *s, bool strict, | ||||||
| 3977 | const char** errstr, | ||||||
| 3978 | bool *sqv, | ||||||
| 3979 | int *ssaw_decimal, | ||||||
| 3980 | int *swidth, bool *salpha)'},'printf_nocontext' => {'name' => 'printf_nocontext','text' => ''},'ptr_table_fetch' => {'name' => 'ptr_table_fetch','text' => ''},'ptr_table_free' => {'name' => 'ptr_table_free','text' => ''},'ptr_table_new' => {'name' => 'ptr_table_new','text' => ''},'ptr_table_split' => {'name' => 'ptr_table_split','text' => ''},'ptr_table_store' => {'name' => 'ptr_table_store','text' => ''},'push_scope' => {'name' => 'push_scope','text' => ''},'pv_display' => {'name' => 'pv_display','text' => 'Similar to | ||||||
| 3981 | |||||||
| 3982 | pv_escape(dsv,pv,cur,pvlim,PERL_PV_ESCAPE_QUOTE); | ||||||
| 3983 | |||||||
| 3984 | except that an additional "\\0" will be appended to the string when | ||||||
| 3985 | len > cur and pv[cur] is "\\0". | ||||||
| 3986 | |||||||
| 3987 | Note that the final string may be up to 7 chars longer than pvlim. | ||||||
| 3988 | |||||||
| 3989 | char* pv_display(SV *dsv, const char *pv, STRLEN cur, | ||||||
| 3990 | STRLEN len, STRLEN pvlim)'},'pv_escape' => {'name' => 'pv_escape','text' => 'Escapes at most the first "count" chars of pv and puts the results into | ||||||
| 3991 | dsv such that the size of the escaped string will not exceed "max" chars | ||||||
| 3992 | and will not contain any incomplete escape sequences. | ||||||
| 3993 | |||||||
| 3994 | If flags contains PERL_PV_ESCAPE_QUOTE then any double quotes in the string | ||||||
| 3995 | will also be escaped. | ||||||
| 3996 | |||||||
| 3997 | Normally the SV will be cleared before the escaped string is prepared, | ||||||
| 3998 | but when PERL_PV_ESCAPE_NOCLEAR is set this will not occur. | ||||||
| 3999 | |||||||
| 4000 | If PERL_PV_ESCAPE_UNI is set then the input string is treated as Unicode, | ||||||
| 4001 | if PERL_PV_ESCAPE_UNI_DETECT is set then the input string is scanned | ||||||
| 4002 | using C |
||||||
| 4003 | |||||||
| 4004 | If PERL_PV_ESCAPE_ALL is set then all input chars will be output | ||||||
| 4005 | using C<\\x01F1> style escapes, otherwise if PERL_PV_ESCAPE_NONASCII is set, only | ||||||
| 4006 | non-ASCII chars will be escaped using this style; otherwise, only chars above | ||||||
| 4007 | 255 will be so escaped; other non printable chars will use octal or | ||||||
| 4008 | common escaped patterns like C<\\n>. | ||||||
| 4009 | Otherwise, if PERL_PV_ESCAPE_NOBACKSLASH | ||||||
| 4010 | then all chars below 255 will be treated as printable and | ||||||
| 4011 | will be output as literals. | ||||||
| 4012 | |||||||
| 4013 | If PERL_PV_ESCAPE_FIRSTCHAR is set then only the first char of the | ||||||
| 4014 | string will be escaped, regardless of max. If the output is to be in hex, | ||||||
| 4015 | then it will be returned as a plain hex | ||||||
| 4016 | sequence. Thus the output will either be a single char, | ||||||
| 4017 | an octal escape sequence, a special escape like C<\\n> or a hex value. | ||||||
| 4018 | |||||||
| 4019 | If PERL_PV_ESCAPE_RE is set then the escape char used will be a \'%\' and | ||||||
| 4020 | not a \'\\\\\'. This is because regexes very often contain backslashed | ||||||
| 4021 | sequences, whereas \'%\' is not a particularly common character in patterns. | ||||||
| 4022 | |||||||
| 4023 | Returns a pointer to the escaped text as held by dsv. | ||||||
| 4024 | |||||||
| 4025 | char* pv_escape(SV *dsv, char const * const str, | ||||||
| 4026 | const STRLEN count, const STRLEN max, | ||||||
| 4027 | STRLEN * const escaped, | ||||||
| 4028 | const U32 flags)'},'pv_pretty' => {'name' => 'pv_pretty','text' => 'Converts a string into something presentable, handling escaping via | ||||||
| 4029 | pv_escape() and supporting quoting and ellipses. | ||||||
| 4030 | |||||||
| 4031 | If the PERL_PV_PRETTY_QUOTE flag is set then the result will be | ||||||
| 4032 | double quoted with any double quotes in the string escaped. Otherwise | ||||||
| 4033 | if the PERL_PV_PRETTY_LTGT flag is set then the result be wrapped in | ||||||
| 4034 | angle brackets. | ||||||
| 4035 | |||||||
| 4036 | If the PERL_PV_PRETTY_ELLIPSES flag is set and not all characters in | ||||||
| 4037 | string were output then an ellipsis C<...> will be appended to the | ||||||
| 4038 | string. Note that this happens AFTER it has been quoted. | ||||||
| 4039 | |||||||
| 4040 | If start_color is non-null then it will be inserted after the opening | ||||||
| 4041 | quote (if there is one) but before the escaped text. If end_color | ||||||
| 4042 | is non-null then it will be inserted after the escaped text but before | ||||||
| 4043 | any quotes or ellipses. | ||||||
| 4044 | |||||||
| 4045 | Returns a pointer to the prettified text as held by dsv. | ||||||
| 4046 | |||||||
| 4047 | char* pv_pretty(SV *dsv, char const * const str, | ||||||
| 4048 | const STRLEN count, const STRLEN max, | ||||||
| 4049 | char const * const start_color, | ||||||
| 4050 | char const * const end_color, | ||||||
| 4051 | const U32 flags)'},'pv_uni_display' => {'name' => 'pv_uni_display','text' => 'Build to the scalar C |
||||||
| 4052 | length C |
||||||
| 4053 | (if longer, the rest is truncated and "..." will be appended). | ||||||
| 4054 | |||||||
| 4055 | The C |
||||||
| 4056 | isPRINT()able characters as themselves, UNI_DISPLAY_BACKSLASH | ||||||
| 4057 | to display the \\\\[nrfta\\\\] as the backslashed versions (like \'\\n\') | ||||||
| 4058 | (UNI_DISPLAY_BACKSLASH is preferred over UNI_DISPLAY_ISPRINT for \\\\). | ||||||
| 4059 | UNI_DISPLAY_QQ (and its alias UNI_DISPLAY_REGEX) have both | ||||||
| 4060 | UNI_DISPLAY_BACKSLASH and UNI_DISPLAY_ISPRINT turned on. | ||||||
| 4061 | |||||||
| 4062 | The pointer to the PV of the C |
||||||
| 4063 | |||||||
| 4064 | char* pv_uni_display(SV *dsv, const U8 *spv, | ||||||
| 4065 | STRLEN len, STRLEN pvlim, | ||||||
| 4066 | UV flags)'},'re_compile' => {'name' => 're_compile','text' => ''},'re_dup_guts' => {'name' => 're_dup_guts','text' => ''},'re_intuit_start' => {'name' => 're_intuit_start','text' => ''},'re_intuit_string' => {'name' => 're_intuit_string','text' => ''},'realloc' => {'name' => 'realloc','text' => ''},'reentrant_free' => {'name' => 'reentrant_free','text' => ''},'reentrant_init' => {'name' => 'reentrant_init','text' => ''},'reentrant_retry' => {'name' => 'reentrant_retry','text' => ''},'reentrant_size' => {'name' => 'reentrant_size','text' => ''},'ref' => {'name' => 'ref','text' => ''},'reg_named_buff_all' => {'name' => 'reg_named_buff_all','text' => ''},'reg_named_buff_exists' => {'name' => 'reg_named_buff_exists','text' => ''},'reg_named_buff_fetch' => {'name' => 'reg_named_buff_fetch','text' => ''},'reg_named_buff_firstkey' => {'name' => 'reg_named_buff_firstkey','text' => ''},'reg_named_buff_nextkey' => {'name' => 'reg_named_buff_nextkey','text' => ''},'reg_named_buff_scalar' => {'name' => 'reg_named_buff_scalar','text' => ''},'regclass_swash' => {'name' => 'regclass_swash','text' => ''},'regdump' => {'name' => 'regdump','text' => ''},'regdupe_internal' => {'name' => 'regdupe_internal','text' => ''},'regexec_flags' => {'name' => 'regexec_flags','text' => ''},'regfree_internal' => {'name' => 'regfree_internal','text' => ''},'reginitcolors' => {'name' => 'reginitcolors','text' => ''},'regnext' => {'name' => 'regnext','text' => ''},'repeatcpy' => {'name' => 'repeatcpy','text' => ''},'require_pv' => {'name' => 'require_pv','text' => 'Tells Perl to C |
||||||
| 4067 | analogous to the Perl code C |
||||||
| 4068 | implemented that way; consider using load_module instead. | ||||||
| 4069 | |||||||
| 4070 | NOTE: the perl_ form of this function is deprecated. | ||||||
| 4071 | |||||||
| 4072 | void require_pv(const char* pv)'},'rninstr' => {'name' => 'rninstr','text' => ''},'rsignal' => {'name' => 'rsignal','text' => ''},'rsignal_state' => {'name' => 'rsignal_state','text' => ''},'runops_debug' => {'name' => 'runops_debug','text' => ''},'runops_standard' => {'name' => 'runops_standard','text' => ''},'rv2cv_op_cv' => {'name' => 'rv2cv_op_cv','text' => 'Examines an op, which is expected to identify a subroutine at runtime, | ||||||
| 4073 | and attempts to determine at compile time which subroutine it identifies. | ||||||
| 4074 | This is normally used during Perl compilation to determine whether | ||||||
| 4075 | a prototype can be applied to a function call. I |
||||||
| 4076 | being considered, normally an C |
||||||
| 4077 | subroutine is returned, if it could be determined statically, and a null | ||||||
| 4078 | pointer is returned if it was not possible to determine statically. | ||||||
| 4079 | |||||||
| 4080 | Currently, the subroutine can be identified statically if the RV that the | ||||||
| 4081 | C |
||||||
| 4082 | A C |
||||||
| 4083 | suitable if the constant value must be an RV pointing to a CV. Details of | ||||||
| 4084 | this process may change in future versions of Perl. If the C |
||||||
| 4085 | has the C |
||||||
| 4086 | the subroutine statically: this flag is used to suppress compile-time | ||||||
| 4087 | magic on a subroutine call, forcing it to use default runtime behaviour. | ||||||
| 4088 | |||||||
| 4089 | If I |
||||||
| 4090 | of a GV reference is modified. If a GV was examined and its CV slot was | ||||||
| 4091 | found to be empty, then the C |
||||||
| 4092 | If the op is not optimised away, and the CV slot is later populated with | ||||||
| 4093 | a subroutine having a prototype, that flag eventually triggers the warning | ||||||
| 4094 | "called too early to check prototype". | ||||||
| 4095 | |||||||
| 4096 | If I |
||||||
| 4097 | of returning a pointer to the subroutine it returns a pointer to the | ||||||
| 4098 | GV giving the most appropriate name for the subroutine in this context. | ||||||
| 4099 | Normally this is just the C |
||||||
| 4100 | (C |
||||||
| 4101 | referencing GV. The resulting C |
||||||
| 4102 | A null pointer is returned as usual if there is no statically-determinable | ||||||
| 4103 | subroutine. | ||||||
| 4104 | |||||||
| 4105 | CV * rv2cv_op_cv(OP *cvop, U32 flags)'},'rvpv_dup' => {'name' => 'rvpv_dup','text' => ''},'safesyscalloc' => {'name' => 'safesyscalloc','text' => ''},'safesysfree' => {'name' => 'safesysfree','text' => ''},'safesysmalloc' => {'name' => 'safesysmalloc','text' => ''},'safesysrealloc' => {'name' => 'safesysrealloc','text' => ''},'save_I16' => {'name' => 'save_I16','text' => ''},'save_I32' => {'name' => 'save_I32','text' => ''},'save_I8' => {'name' => 'save_I8','text' => ''},'save_adelete' => {'name' => 'save_adelete','text' => ''},'save_aelem' => {'name' => 'save_aelem','text' => ''},'save_aelem_flags' => {'name' => 'save_aelem_flags','text' => ''},'save_alloc' => {'name' => 'save_alloc','text' => ''},'save_aptr' => {'name' => 'save_aptr','text' => ''},'save_ary' => {'name' => 'save_ary','text' => ''},'save_bool' => {'name' => 'save_bool','text' => ''},'save_clearsv' => {'name' => 'save_clearsv','text' => ''},'save_delete' => {'name' => 'save_delete','text' => ''},'save_destructor' => {'name' => 'save_destructor','text' => ''},'save_destructor_x' => {'name' => 'save_destructor_x','text' => ''},'save_freeop' => {'name' => 'save_freeop','text' => ''},'save_freepv' => {'name' => 'save_freepv','text' => ''},'save_freesv' => {'name' => 'save_freesv','text' => ''},'save_generic_pvref' => {'name' => 'save_generic_pvref','text' => ''},'save_generic_svref' => {'name' => 'save_generic_svref','text' => ''},'save_gp' => {'name' => 'save_gp','text' => ''},'save_hash' => {'name' => 'save_hash','text' => ''},'save_hdelete' => {'name' => 'save_hdelete','text' => ''},'save_helem' => {'name' => 'save_helem','text' => ''},'save_helem_flags' => {'name' => 'save_helem_flags','text' => ''},'save_hints' => {'name' => 'save_hints','text' => ''},'save_hptr' => {'name' => 'save_hptr','text' => ''},'save_int' => {'name' => 'save_int','text' => ''},'save_item' => {'name' => 'save_item','text' => ''},'save_iv' => {'name' => 'save_iv','text' => ''},'save_list' => {'name' => 'save_list','text' => ''},'save_long' => {'name' => 'save_long','text' => ''},'save_mortalizesv' => {'name' => 'save_mortalizesv','text' => ''},'save_nogv' => {'name' => 'save_nogv','text' => ''},'save_op' => {'name' => 'save_op','text' => ''},'save_padsv_and_mortalize' => {'name' => 'save_padsv_and_mortalize','text' => ''},'save_pptr' => {'name' => 'save_pptr','text' => ''},'save_pushi32ptr' => {'name' => 'save_pushi32ptr','text' => ''},'save_pushptr' => {'name' => 'save_pushptr','text' => ''},'save_pushptrptr' => {'name' => 'save_pushptrptr','text' => ''},'save_re_context' => {'name' => 'save_re_context','text' => ''},'save_scalar' => {'name' => 'save_scalar','text' => ''},'save_set_svflags' => {'name' => 'save_set_svflags','text' => ''},'save_shared_pvref' => {'name' => 'save_shared_pvref','text' => ''},'save_sptr' => {'name' => 'save_sptr','text' => ''},'save_svref' => {'name' => 'save_svref','text' => ''},'save_vptr' => {'name' => 'save_vptr','text' => ''},'savepv' => {'name' => 'savepv','text' => 'Perl\'s version of C |
||||||
| 4106 | string which is a duplicate of C |
||||||
| 4107 | determined by C |
||||||
| 4108 | characters and must have a trailing C |
||||||
| 4109 | string can be freed with the C |
||||||
| 4110 | |||||||
| 4111 | On some platforms, Windows for example, all allocated memory owned by a thread | ||||||
| 4112 | is deallocated when that thread ends. So if you need that not to happen, you | ||||||
| 4113 | need to use the shared memory functions, such as C |
||||||
| 4114 | |||||||
| 4115 | char* savepv(const char* pv)'},'savepvn' => {'name' => 'savepvn','text' => 'Perl\'s version of what C |
||||||
| 4116 | pointer to a newly allocated string which is a duplicate of the first | ||||||
| 4117 | C |
||||||
| 4118 | C |
||||||
| 4119 | the new string can be freed with the C |
||||||
| 4120 | |||||||
| 4121 | On some platforms, Windows for example, all allocated memory owned by a thread | ||||||
| 4122 | is deallocated when that thread ends. So if you need that not to happen, you | ||||||
| 4123 | need to use the shared memory functions, such as C |
||||||
| 4124 | |||||||
| 4125 | char* savepvn(const char* pv, I32 len)'},'savepvs' => {'name' => 'savepvs','text' => 'Like C |
||||||
| 4126 | string/length pair. | ||||||
| 4127 | |||||||
| 4128 | char* savepvs(const char* s)'},'savesharedpv' => {'name' => 'savesharedpv','text' => 'A version of C |
||||||
| 4129 | which is shared between threads. | ||||||
| 4130 | |||||||
| 4131 | char* savesharedpv(const char* pv)'},'savesharedpvn' => {'name' => 'savesharedpvn','text' => 'A version of C |
||||||
| 4132 | which is shared between threads. (With the specific difference that a NULL | ||||||
| 4133 | pointer is not acceptable) | ||||||
| 4134 | |||||||
| 4135 | char* savesharedpvn(const char *const pv, | ||||||
| 4136 | const STRLEN len)'},'savesharedpvs' => {'name' => 'savesharedpvs','text' => 'A version of C |
||||||
| 4137 | which is shared between threads. | ||||||
| 4138 | |||||||
| 4139 | char* savesharedpvs(const char* s)'},'savesharedsvpv' => {'name' => 'savesharedsvpv','text' => 'A version of C |
||||||
| 4140 | memory which is shared between threads. | ||||||
| 4141 | |||||||
| 4142 | char* savesharedsvpv(SV *sv)'},'savestack_grow' => {'name' => 'savestack_grow','text' => ''},'savestack_grow_cnt' => {'name' => 'savestack_grow_cnt','text' => ''},'savesvpv' => {'name' => 'savesvpv','text' => 'A version of C |
||||||
| 4143 | the passed in SV using C |
||||||
| 4144 | |||||||
| 4145 | On some platforms, Windows for example, all allocated memory owned by a thread | ||||||
| 4146 | is deallocated when that thread ends. So if you need that not to happen, you | ||||||
| 4147 | need to use the shared memory functions, such as C |
||||||
| 4148 | |||||||
| 4149 | char* savesvpv(SV* sv)'},'scan_bin' => {'name' => 'scan_bin','text' => 'For backwards compatibility. Use C |
||||||
| 4150 | |||||||
| 4151 | NV scan_bin(const char* start, STRLEN len, | ||||||
| 4152 | STRLEN* retlen)'},'scan_hex' => {'name' => 'scan_hex','text' => 'For backwards compatibility. Use C |
||||||
| 4153 | |||||||
| 4154 | NV scan_hex(const char* start, STRLEN len, | ||||||
| 4155 | STRLEN* retlen)'},'scan_num' => {'name' => 'scan_num','text' => ''},'scan_oct' => {'name' => 'scan_oct','text' => 'For backwards compatibility. Use C |
||||||
| 4156 | |||||||
| 4157 | NV scan_oct(const char* start, STRLEN len, | ||||||
| 4158 | STRLEN* retlen)'},'scan_version' => {'name' => 'scan_version','text' => 'Returns a pointer to the next character after the parsed | ||||||
| 4159 | version string, as well as upgrading the passed in SV to | ||||||
| 4160 | an RV. | ||||||
| 4161 | |||||||
| 4162 | Function must be called with an already existing SV like | ||||||
| 4163 | |||||||
| 4164 | sv = newSV(0); | ||||||
| 4165 | s = scan_version(s, SV *sv, bool qv); | ||||||
| 4166 | |||||||
| 4167 | Performs some preprocessing to the string to ensure that | ||||||
| 4168 | it has the correct characteristics of a version. Flags the | ||||||
| 4169 | object if it contains an underscore (which denotes this | ||||||
| 4170 | is an alpha version). The boolean qv denotes that the version | ||||||
| 4171 | should be interpreted as if it had multiple decimals, even if | ||||||
| 4172 | it doesn\'t. | ||||||
| 4173 | |||||||
| 4174 | const char* scan_version(const char *s, SV *rv, bool qv)'},'scan_vstring' => {'name' => 'scan_vstring','text' => ''},'screaminstr' => {'name' => 'screaminstr','text' => ''},'seed' => {'name' => 'seed','text' => ''},'set_context' => {'name' => 'set_context','text' => ''},'set_numeric_local' => {'name' => 'set_numeric_local','text' => ''},'set_numeric_radix' => {'name' => 'set_numeric_radix','text' => ''},'set_numeric_standard' => {'name' => 'set_numeric_standard','text' => ''},'setdefout' => {'name' => 'setdefout','text' => 'Sets PL_defoutgv, the default file handle for output, to the passed in | ||||||
| 4175 | typeglob. As PL_defoutgv "owns" a reference on its typeglob, the reference | ||||||
| 4176 | count of the passed in typeglob is increased by one, and the reference count | ||||||
| 4177 | of the typeglob that PL_defoutgv points to is decreased by one. | ||||||
| 4178 | |||||||
| 4179 | void setdefout(GV* gv)'},'share_hek' => {'name' => 'share_hek','text' => ''},'si_dup' => {'name' => 'si_dup','text' => ''},'sortsv' => {'name' => 'sortsv','text' => 'Sort an array. Here is an example: | ||||||
| 4180 | |||||||
| 4181 | sortsv(AvARRAY(av), av_top_index(av)+1, Perl_sv_cmp_locale); | ||||||
| 4182 | |||||||
| 4183 | Currently this always uses mergesort. See sortsv_flags for a more | ||||||
| 4184 | flexible routine. | ||||||
| 4185 | |||||||
| 4186 | void sortsv(SV** array, size_t num_elts, | ||||||
| 4187 | SVCOMPARE_t cmp)'},'sortsv_flags' => {'name' => 'sortsv_flags','text' => 'Sort an array, with various options. | ||||||
| 4188 | |||||||
| 4189 | void sortsv_flags(SV** array, size_t num_elts, | ||||||
| 4190 | SVCOMPARE_t cmp, U32 flags)'},'ss_dup' => {'name' => 'ss_dup','text' => ''},'stack_grow' => {'name' => 'stack_grow','text' => ''},'start_subparse' => {'name' => 'start_subparse','text' => ''},'strEQ' => {'name' => 'strEQ','text' => 'Test two strings to see if they are equal. Returns true or false. | ||||||
| 4191 | |||||||
| 4192 | bool strEQ(char* s1, char* s2)'},'strGE' => {'name' => 'strGE','text' => 'Test two strings to see if the first, C |
||||||
| 4193 | the second, C |
||||||
| 4194 | |||||||
| 4195 | bool strGE(char* s1, char* s2)'},'strGT' => {'name' => 'strGT','text' => 'Test two strings to see if the first, C |
||||||
| 4196 | C |
||||||
| 4197 | |||||||
| 4198 | bool strGT(char* s1, char* s2)'},'strLE' => {'name' => 'strLE','text' => 'Test two strings to see if the first, C |
||||||
| 4199 | second, C |
||||||
| 4200 | |||||||
| 4201 | bool strLE(char* s1, char* s2)'},'strLT' => {'name' => 'strLT','text' => 'Test two strings to see if the first, C |
||||||
| 4202 | C |
||||||
| 4203 | |||||||
| 4204 | bool strLT(char* s1, char* s2)'},'strNE' => {'name' => 'strNE','text' => 'Test two strings to see if they are different. Returns true or | ||||||
| 4205 | false. | ||||||
| 4206 | |||||||
| 4207 | bool strNE(char* s1, char* s2)'},'str_to_version' => {'name' => 'str_to_version','text' => ''},'strnEQ' => {'name' => 'strnEQ','text' => 'Test two strings to see if they are equal. The C |
||||||
| 4208 | the number of bytes to compare. Returns true or false. (A wrapper for | ||||||
| 4209 | C |
||||||
| 4210 | |||||||
| 4211 | bool strnEQ(char* s1, char* s2, STRLEN len)'},'strnNE' => {'name' => 'strnNE','text' => 'Test two strings to see if they are different. The C |
||||||
| 4212 | indicates the number of bytes to compare. Returns true or false. (A | ||||||
| 4213 | wrapper for C |
||||||
| 4214 | |||||||
| 4215 | bool strnNE(char* s1, char* s2, STRLEN len)'},'sv_2bool' => {'name' => 'sv_2bool','text' => 'This macro is only used by sv_true() or its macro equivalent, and only if | ||||||
| 4216 | the latter\'s argument is neither SvPOK, SvIOK nor SvNOK. | ||||||
| 4217 | It calls sv_2bool_flags with the SV_GMAGIC flag. | ||||||
| 4218 | |||||||
| 4219 | bool sv_2bool(SV *const sv)'},'sv_2bool_flags' => {'name' => 'sv_2bool_flags','text' => 'This function is only used by sv_true() and friends, and only if | ||||||
| 4220 | the latter\'s argument is neither SvPOK, SvIOK nor SvNOK. If the flags | ||||||
| 4221 | contain SV_GMAGIC, then it does an mg_get() first. | ||||||
| 4222 | |||||||
| 4223 | |||||||
| 4224 | bool sv_2bool_flags(SV *sv, I32 flags)'},'sv_2cv' => {'name' => 'sv_2cv','text' => 'Using various gambits, try to get a CV from an SV; in addition, try if | ||||||
| 4225 | possible to set C<*st> and C<*gvp> to the stash and GV associated with it. | ||||||
| 4226 | The flags in C |
||||||
| 4227 | |||||||
| 4228 | CV* sv_2cv(SV* sv, HV **const st, GV **const gvp, | ||||||
| 4229 | const I32 lref)'},'sv_2io' => {'name' => 'sv_2io','text' => 'Using various gambits, try to get an IO from an SV: the IO slot if its a | ||||||
| 4230 | GV; or the recursive result if we\'re an RV; or the IO slot of the symbol | ||||||
| 4231 | named after the PV if we\'re a string. | ||||||
| 4232 | |||||||
| 4233 | \'Get\' magic is ignored on the sv passed in, but will be called on | ||||||
| 4234 | C |
||||||
| 4235 | |||||||
| 4236 | IO* sv_2io(SV *const sv)'},'sv_2iv' => {'name' => 'sv_2iv','text' => ''},'sv_2iv_flags' => {'name' => 'sv_2iv_flags','text' => 'Return the integer value of an SV, doing any necessary string | ||||||
| 4237 | conversion. If flags includes SV_GMAGIC, does an mg_get() first. | ||||||
| 4238 | Normally used via the C |
||||||
| 4239 | |||||||
| 4240 | IV sv_2iv_flags(SV *const sv, const I32 flags)'},'sv_2mortal' => {'name' => 'sv_2mortal','text' => 'Marks an existing SV as mortal. The SV will be destroyed "soon", either | ||||||
| 4241 | by an explicit call to FREETMPS, or by an implicit call at places such as | ||||||
| 4242 | statement boundaries. SvTEMP() is turned on which means that the SV\'s | ||||||
| 4243 | string buffer can be "stolen" if this SV is copied. See also C |
||||||
| 4244 | and C |
||||||
| 4245 | |||||||
| 4246 | SV* sv_2mortal(SV *const sv)'},'sv_2nv_flags' => {'name' => 'sv_2nv_flags','text' => 'Return the num value of an SV, doing any necessary string or integer | ||||||
| 4247 | conversion. If flags includes SV_GMAGIC, does an mg_get() first. | ||||||
| 4248 | Normally used via the C |
||||||
| 4249 | |||||||
| 4250 | NV sv_2nv_flags(SV *const sv, const I32 flags)'},'sv_2pv' => {'name' => 'sv_2pv','text' => ''},'sv_2pv_flags' => {'name' => 'sv_2pv_flags','text' => 'Returns a pointer to the string value of an SV, and sets *lp to its length. | ||||||
| 4251 | If flags includes SV_GMAGIC, does an mg_get() first. Coerces sv to a | ||||||
| 4252 | string if necessary. Normally invoked via the C |
||||||
| 4253 | C |
||||||
| 4254 | |||||||
| 4255 | char* sv_2pv_flags(SV *const sv, STRLEN *const lp, | ||||||
| 4256 | const I32 flags)'},'sv_2pv_nolen' => {'name' => 'sv_2pv_nolen','text' => 'Like C |
||||||
| 4257 | use the macro wrapper C |
||||||
| 4258 | |||||||
| 4259 | char* sv_2pv_nolen(SV* sv)'},'sv_2pvbyte' => {'name' => 'sv_2pvbyte','text' => 'Return a pointer to the byte-encoded representation of the SV, and set *lp | ||||||
| 4260 | to its length. May cause the SV to be downgraded from UTF-8 as a | ||||||
| 4261 | side-effect. | ||||||
| 4262 | |||||||
| 4263 | Usually accessed via the C |
||||||
| 4264 | |||||||
| 4265 | char* sv_2pvbyte(SV *sv, STRLEN *const lp)'},'sv_2pvbyte_nolen' => {'name' => 'sv_2pvbyte_nolen','text' => 'Return a pointer to the byte-encoded representation of the SV. | ||||||
| 4266 | May cause the SV to be downgraded from UTF-8 as a side-effect. | ||||||
| 4267 | |||||||
| 4268 | Usually accessed via the C |
||||||
| 4269 | |||||||
| 4270 | char* sv_2pvbyte_nolen(SV* sv)'},'sv_2pvutf8' => {'name' => 'sv_2pvutf8','text' => 'Return a pointer to the UTF-8-encoded representation of the SV, and set *lp | ||||||
| 4271 | to its length. May cause the SV to be upgraded to UTF-8 as a side-effect. | ||||||
| 4272 | |||||||
| 4273 | Usually accessed via the C |
||||||
| 4274 | |||||||
| 4275 | char* sv_2pvutf8(SV *sv, STRLEN *const lp)'},'sv_2pvutf8_nolen' => {'name' => 'sv_2pvutf8_nolen','text' => 'Return a pointer to the UTF-8-encoded representation of the SV. | ||||||
| 4276 | May cause the SV to be upgraded to UTF-8 as a side-effect. | ||||||
| 4277 | |||||||
| 4278 | Usually accessed via the C |
||||||
| 4279 | |||||||
| 4280 | char* sv_2pvutf8_nolen(SV* sv)'},'sv_2uv' => {'name' => 'sv_2uv','text' => ''},'sv_2uv_flags' => {'name' => 'sv_2uv_flags','text' => 'Return the unsigned integer value of an SV, doing any necessary string | ||||||
| 4281 | conversion. If flags includes SV_GMAGIC, does an mg_get() first. | ||||||
| 4282 | Normally used via the C |
||||||
| 4283 | |||||||
| 4284 | UV sv_2uv_flags(SV *const sv, const I32 flags)'},'sv_backoff' => {'name' => 'sv_backoff','text' => 'Remove any string offset. You should normally use the C |
||||||
| 4285 | wrapper instead. | ||||||
| 4286 | |||||||
| 4287 | int sv_backoff(SV *const sv)'},'sv_bless' => {'name' => 'sv_bless','text' => 'Blesses an SV into a specified package. The SV must be an RV. The package | ||||||
| 4288 | must be designated by its stash (see C |
||||||
| 4289 | of the SV is unaffected. | ||||||
| 4290 | |||||||
| 4291 | SV* sv_bless(SV *const sv, HV *const stash)'},'sv_cat_decode' => {'name' => 'sv_cat_decode','text' => 'The encoding is assumed to be an Encode object, the PV of the ssv is | ||||||
| 4292 | assumed to be octets in that encoding and decoding the input starts | ||||||
| 4293 | from the position which (PV + *offset) pointed to. The dsv will be | ||||||
| 4294 | concatenated the decoded UTF-8 string from ssv. Decoding will terminate | ||||||
| 4295 | when the string tstr appears in decoding output or the input ends on | ||||||
| 4296 | the PV of the ssv. The value which the offset points will be modified | ||||||
| 4297 | to the last input position on the ssv. | ||||||
| 4298 | |||||||
| 4299 | Returns TRUE if the terminator was found, else returns FALSE. | ||||||
| 4300 | |||||||
| 4301 | bool sv_cat_decode(SV* dsv, SV *encoding, SV *ssv, | ||||||
| 4302 | int *offset, char* tstr, int tlen)'},'sv_catpv' => {'name' => 'sv_catpv','text' => 'Concatenates the C |
||||||
| 4303 | in the SV. | ||||||
| 4304 | If the SV has the UTF-8 status set, then the bytes appended should be | ||||||
| 4305 | valid UTF-8. Handles \'get\' magic, but not \'set\' magic. See C |
||||||
| 4306 | |||||||
| 4307 | void sv_catpv(SV *const sv, const char* ptr)'},'sv_catpv_flags' => {'name' => 'sv_catpv_flags','text' => 'Concatenates the C |
||||||
| 4308 | in the SV. | ||||||
| 4309 | If the SV has the UTF-8 status set, then the bytes appended should | ||||||
| 4310 | be valid UTF-8. If C |
||||||
| 4311 | on the modified SV if appropriate. | ||||||
| 4312 | |||||||
| 4313 | void sv_catpv_flags(SV *dstr, const char *sstr, | ||||||
| 4314 | const I32 flags)'},'sv_catpv_mg' => {'name' => 'sv_catpv_mg','text' => 'Like C |
||||||
| 4315 | |||||||
| 4316 | void sv_catpv_mg(SV *const sv, const char *const ptr)'},'sv_catpv_nomg' => {'name' => 'sv_catpv_nomg','text' => 'Like C |
||||||
| 4317 | |||||||
| 4318 | void sv_catpv_nomg(SV* sv, const char* ptr)'},'sv_catpvf' => {'name' => 'sv_catpvf','text' => 'Processes its arguments like C |
||||||
| 4319 | output to an SV. If the appended data contains "wide" characters | ||||||
| 4320 | (including, but not limited to, SVs with a UTF-8 PV formatted with %s, | ||||||
| 4321 | and characters >255 formatted with %c), the original SV might get | ||||||
| 4322 | upgraded to UTF-8. Handles \'get\' magic, but not \'set\' magic. See | ||||||
| 4323 | C |
||||||
| 4324 | valid UTF-8; if the original SV was bytes, the pattern should be too. | ||||||
| 4325 | |||||||
| 4326 | void sv_catpvf(SV *const sv, const char *const pat, | ||||||
| 4327 | ...)'},'sv_catpvf_mg' => {'name' => 'sv_catpvf_mg','text' => 'Like C |
||||||
| 4328 | |||||||
| 4329 | void sv_catpvf_mg(SV *const sv, | ||||||
| 4330 | const char *const pat, ...)'},'sv_catpvf_mg_nocontext' => {'name' => 'sv_catpvf_mg_nocontext','text' => ''},'sv_catpvf_nocontext' => {'name' => 'sv_catpvf_nocontext','text' => ''},'sv_catpvn' => {'name' => 'sv_catpvn','text' => 'Concatenates the string onto the end of the string which is in the SV. The | ||||||
| 4331 | C |
||||||
| 4332 | status set, then the bytes appended should be valid UTF-8. | ||||||
| 4333 | Handles \'get\' magic, but not \'set\' magic. See C |
||||||
| 4334 | |||||||
| 4335 | void sv_catpvn(SV *dsv, const char *sstr, STRLEN len)'},'sv_catpvn_flags' => {'name' => 'sv_catpvn_flags','text' => 'Concatenates the string onto the end of the string which is in the SV. The | ||||||
| 4336 | C |
||||||
| 4337 | status set, then the bytes appended should be valid UTF-8. | ||||||
| 4338 | If C |
||||||
| 4339 | C |
||||||
| 4340 | C |
||||||
| 4341 | in terms of this function. | ||||||
| 4342 | |||||||
| 4343 | void sv_catpvn_flags(SV *const dstr, | ||||||
| 4344 | const char *sstr, | ||||||
| 4345 | const STRLEN len, | ||||||
| 4346 | const I32 flags)'},'sv_catpvn_mg' => {'name' => 'sv_catpvn_mg','text' => 'Like C |
||||||
| 4347 | |||||||
| 4348 | void sv_catpvn_mg(SV *sv, const char *ptr, | ||||||
| 4349 | STRLEN len)'},'sv_catpvn_nomg' => {'name' => 'sv_catpvn_nomg','text' => 'Like C |
||||||
| 4350 | |||||||
| 4351 | void sv_catpvn_nomg(SV* sv, const char* ptr, | ||||||
| 4352 | STRLEN len)'},'sv_catpvs' => {'name' => 'sv_catpvs','text' => 'Like C |
||||||
| 4353 | |||||||
| 4354 | void sv_catpvs(SV* sv, const char* s)'},'sv_catpvs_flags' => {'name' => 'sv_catpvs_flags','text' => 'Like C |
||||||
| 4355 | of a string/length pair. | ||||||
| 4356 | |||||||
| 4357 | void sv_catpvs_flags(SV* sv, const char* s, | ||||||
| 4358 | I32 flags)'},'sv_catpvs_mg' => {'name' => 'sv_catpvs_mg','text' => 'Like C |
||||||
| 4359 | string/length pair. | ||||||
| 4360 | |||||||
| 4361 | void sv_catpvs_mg(SV* sv, const char* s)'},'sv_catpvs_nomg' => {'name' => 'sv_catpvs_nomg','text' => 'Like C |
||||||
| 4362 | string/length pair. | ||||||
| 4363 | |||||||
| 4364 | void sv_catpvs_nomg(SV* sv, const char* s)'},'sv_catsv' => {'name' => 'sv_catsv','text' => 'Concatenates the string from SV C |
||||||
| 4365 | C |
||||||
| 4366 | Handles \'get\' magic on both SVs, but no \'set\' magic. See C |
||||||
| 4367 | C |
||||||
| 4368 | |||||||
| 4369 | void sv_catsv(SV *dstr, SV *sstr)'},'sv_catsv_flags' => {'name' => 'sv_catsv_flags','text' => 'Concatenates the string from SV C |
||||||
| 4370 | C |
||||||
| 4371 | If C |
||||||
| 4372 | appropriate. If C |
||||||
| 4373 | the modified SV afterward, if appropriate. C |
||||||
| 4374 | and C |
||||||
| 4375 | |||||||
| 4376 | void sv_catsv_flags(SV *const dsv, SV *const ssv, | ||||||
| 4377 | const I32 flags)'},'sv_catsv_mg' => {'name' => 'sv_catsv_mg','text' => 'Like C |
||||||
| 4378 | |||||||
| 4379 | void sv_catsv_mg(SV *dsv, SV *ssv)'},'sv_catsv_nomg' => {'name' => 'sv_catsv_nomg','text' => 'Like C |
||||||
| 4380 | |||||||
| 4381 | void sv_catsv_nomg(SV* dsv, SV* ssv)'},'sv_chop' => {'name' => 'sv_chop','text' => 'Efficient removal of characters from the beginning of the string buffer. | ||||||
| 4382 | SvPOK(sv), or at least SvPOKp(sv), must be true and the C |
||||||
| 4383 | pointer to somewhere inside the string buffer. The C |
||||||
| 4384 | character of the adjusted string. Uses the "OOK hack". On return, only | ||||||
| 4385 | SvPOK(sv) and SvPOKp(sv) among the OK flags will be true. | ||||||
| 4386 | |||||||
| 4387 | Beware: after this function returns, C |
||||||
| 4388 | refer to the same chunk of data. | ||||||
| 4389 | |||||||
| 4390 | The unfortunate similarity of this function\'s name to that of Perl\'s C |
||||||
| 4391 | operator is strictly coincidental. This function works from the left; | ||||||
| 4392 | C |
||||||
| 4393 | |||||||
| 4394 | void sv_chop(SV *const sv, const char *const ptr)'},'sv_clear' => {'name' => 'sv_clear','text' => 'Clear an SV: call any destructors, free up any memory used by the body, | ||||||
| 4395 | and free the body itself. The SV\'s head is I |
||||||
| 4396 | its type is set to all 1\'s so that it won\'t inadvertently be assumed | ||||||
| 4397 | to be live during global destruction etc. | ||||||
| 4398 | This function should only be called when REFCNT is zero. Most of the time | ||||||
| 4399 | you\'ll want to call C |
||||||
| 4400 | instead. | ||||||
| 4401 | |||||||
| 4402 | void sv_clear(SV *const orig_sv)'},'sv_cmp' => {'name' => 'sv_cmp','text' => 'Compares the strings in two SVs. Returns -1, 0, or 1 indicating whether the | ||||||
| 4403 | string in C |
||||||
| 4404 | C |
||||||
| 4405 | coerce its args to strings if necessary. See also C |
||||||
| 4406 | |||||||
| 4407 | I32 sv_cmp(SV *const sv1, SV *const sv2)'},'sv_cmp_flags' => {'name' => 'sv_cmp_flags','text' => 'Compares the strings in two SVs. Returns -1, 0, or 1 indicating whether the | ||||||
| 4408 | string in C |
||||||
| 4409 | C |
||||||
| 4410 | if necessary. If the flags include SV_GMAGIC, it handles get magic. See | ||||||
| 4411 | also C |
||||||
| 4412 | |||||||
| 4413 | I32 sv_cmp_flags(SV *const sv1, SV *const sv2, | ||||||
| 4414 | const U32 flags)'},'sv_cmp_locale' => {'name' => 'sv_cmp_locale','text' => 'Compares the strings in two SVs in a locale-aware manner. Is UTF-8 and | ||||||
| 4415 | \'use bytes\' aware, handles get magic, and will coerce its args to strings | ||||||
| 4416 | if necessary. See also C |
||||||
| 4417 | |||||||
| 4418 | I32 sv_cmp_locale(SV *const sv1, SV *const sv2)'},'sv_cmp_locale_flags' => {'name' => 'sv_cmp_locale_flags','text' => 'Compares the strings in two SVs in a locale-aware manner. Is UTF-8 and | ||||||
| 4419 | \'use bytes\' aware and will coerce its args to strings if necessary. If the | ||||||
| 4420 | flags contain SV_GMAGIC, it handles get magic. See also C |
||||||
| 4421 | |||||||
| 4422 | I32 sv_cmp_locale_flags(SV *const sv1, | ||||||
| 4423 | SV *const sv2, | ||||||
| 4424 | const U32 flags)'},'sv_collxfrm' => {'name' => 'sv_collxfrm','text' => 'This calls C |
||||||
| 4425 | C |
||||||
| 4426 | |||||||
| 4427 | char* sv_collxfrm(SV *const sv, STRLEN *const nxp)'},'sv_collxfrm_flags' => {'name' => 'sv_collxfrm_flags','text' => 'Add Collate Transform magic to an SV if it doesn\'t already have it. If the | ||||||
| 4428 | flags contain SV_GMAGIC, it handles get-magic. | ||||||
| 4429 | |||||||
| 4430 | Any scalar variable may carry PERL_MAGIC_collxfrm magic that contains the | ||||||
| 4431 | scalar data of the variable, but transformed to such a format that a normal | ||||||
| 4432 | memory comparison can be used to compare the data according to the locale | ||||||
| 4433 | settings. | ||||||
| 4434 | |||||||
| 4435 | char* sv_collxfrm_flags(SV *const sv, | ||||||
| 4436 | STRLEN *const nxp, | ||||||
| 4437 | I32 const flags)'},'sv_copypv_flags' => {'name' => 'sv_copypv_flags','text' => 'Implementation of sv_copypv and sv_copypv_nomg. Calls get magic iff flags | ||||||
| 4438 | include SV_GMAGIC. | ||||||
| 4439 | |||||||
| 4440 | void sv_copypv_flags(SV *const dsv, SV *const ssv, | ||||||
| 4441 | const I32 flags)'},'sv_copypv_nomg' => {'name' => 'sv_copypv_nomg','text' => 'Like sv_copypv, but doesn\'t invoke get magic first. | ||||||
| 4442 | |||||||
| 4443 | void sv_copypv_nomg(SV *const dsv, SV *const ssv)'},'sv_dec' => {'name' => 'sv_dec','text' => 'Auto-decrement of the value in the SV, doing string to numeric conversion | ||||||
| 4444 | if necessary. Handles \'get\' magic and operator overloading. | ||||||
| 4445 | |||||||
| 4446 | void sv_dec(SV *const sv)'},'sv_dec_nomg' => {'name' => 'sv_dec_nomg','text' => 'Auto-decrement of the value in the SV, doing string to numeric conversion | ||||||
| 4447 | if necessary. Handles operator overloading. Skips handling \'get\' magic. | ||||||
| 4448 | |||||||
| 4449 | void sv_dec_nomg(SV *const sv)'},'sv_derived_from' => {'name' => 'sv_derived_from','text' => 'Exactly like L, but doesn\'t take a C |
||||||
| 4450 | |||||||
| 4451 | bool sv_derived_from(SV* sv, const char *const name)'},'sv_derived_from_pv' => {'name' => 'sv_derived_from_pv','text' => 'Exactly like L, but takes a nul-terminated string | ||||||
| 4452 | instead of a string/length pair. | ||||||
| 4453 | |||||||
| 4454 | bool sv_derived_from_pv(SV* sv, | ||||||
| 4455 | const char *const name, | ||||||
| 4456 | U32 flags)'},'sv_derived_from_pvn' => {'name' => 'sv_derived_from_pvn','text' => 'Returns a boolean indicating whether the SV is derived from the specified class | ||||||
| 4457 | I |
||||||
| 4458 | normal Perl method. | ||||||
| 4459 | |||||||
| 4460 | Currently, the only significant value for C |
||||||
| 4461 | |||||||
| 4462 | bool sv_derived_from_pvn(SV* sv, | ||||||
| 4463 | const char *const name, | ||||||
| 4464 | const STRLEN len, U32 flags)'},'sv_derived_from_sv' => {'name' => 'sv_derived_from_sv','text' => 'Exactly like L, but takes the name string in the form | ||||||
| 4465 | of an SV instead of a string/length pair. | ||||||
| 4466 | |||||||
| 4467 | bool sv_derived_from_sv(SV* sv, SV *namesv, | ||||||
| 4468 | U32 flags)'},'sv_destroyable' => {'name' => 'sv_destroyable','text' => 'Dummy routine which reports that object can be destroyed when there is no | ||||||
| 4469 | sharing module present. It ignores its single SV argument, and returns | ||||||
| 4470 | \'true\'. Exists to avoid test for a NULL function pointer and because it | ||||||
| 4471 | could potentially warn under some level of strict-ness. | ||||||
| 4472 | |||||||
| 4473 | bool sv_destroyable(SV *sv)'},'sv_does' => {'name' => 'sv_does','text' => 'Like L, but doesn\'t take a C |
||||||
| 4474 | |||||||
| 4475 | bool sv_does(SV* sv, const char *const name)'},'sv_does_pv' => {'name' => 'sv_does_pv','text' => 'Like L, but takes a nul-terminated string instead of an SV. | ||||||
| 4476 | |||||||
| 4477 | bool sv_does_pv(SV* sv, const char *const name, | ||||||
| 4478 | U32 flags)'},'sv_does_pvn' => {'name' => 'sv_does_pvn','text' => 'Like L, but takes a string/length pair instead of an SV. | ||||||
| 4479 | |||||||
| 4480 | bool sv_does_pvn(SV* sv, const char *const name, | ||||||
| 4481 | const STRLEN len, U32 flags)'},'sv_does_sv' => {'name' => 'sv_does_sv','text' => 'Returns a boolean indicating whether the SV performs a specific, named role. | ||||||
| 4482 | The SV can be a Perl object or the name of a Perl class. | ||||||
| 4483 | |||||||
| 4484 | bool sv_does_sv(SV* sv, SV* namesv, U32 flags)'},'sv_dump' => {'name' => 'sv_dump','text' => 'Dumps the contents of an SV to the C |
||||||
| 4485 | |||||||
| 4486 | For an example of its output, see L |
||||||
| 4487 | |||||||
| 4488 | void sv_dump(SV* sv)'},'sv_dup' => {'name' => 'sv_dup','text' => ''},'sv_dup_inc' => {'name' => 'sv_dup_inc','text' => ''},'sv_eq' => {'name' => 'sv_eq','text' => 'Returns a boolean indicating whether the strings in the two SVs are | ||||||
| 4489 | identical. Is UTF-8 and \'use bytes\' aware, handles get magic, and will | ||||||
| 4490 | coerce its args to strings if necessary. | ||||||
| 4491 | |||||||
| 4492 | I32 sv_eq(SV* sv1, SV* sv2)'},'sv_eq_flags' => {'name' => 'sv_eq_flags','text' => 'Returns a boolean indicating whether the strings in the two SVs are | ||||||
| 4493 | identical. Is UTF-8 and \'use bytes\' aware and coerces its args to strings | ||||||
| 4494 | if necessary. If the flags include SV_GMAGIC, it handles get-magic, too. | ||||||
| 4495 | |||||||
| 4496 | I32 sv_eq_flags(SV* sv1, SV* sv2, const U32 flags)'},'sv_force_normal' => {'name' => 'sv_force_normal','text' => 'Undo various types of fakery on an SV: if the PV is a shared string, make | ||||||
| 4497 | a private copy; if we\'re a ref, stop refing; if we\'re a glob, downgrade to | ||||||
| 4498 | an xpvmg. See also C |
||||||
| 4499 | |||||||
| 4500 | void sv_force_normal(SV *sv)'},'sv_force_normal_flags' => {'name' => 'sv_force_normal_flags','text' => 'Undo various types of fakery on an SV, where fakery means | ||||||
| 4501 | "more than" a string: if the PV is a shared string, make | ||||||
| 4502 | a private copy; if we\'re a ref, stop refing; if we\'re a glob, downgrade to | ||||||
| 4503 | an xpvmg; if we\'re a copy-on-write scalar, this is the on-write time when | ||||||
| 4504 | we do the copy, and is also used locally; if this is a | ||||||
| 4505 | vstring, drop the vstring magic. If C |
||||||
| 4506 | then a copy-on-write scalar drops its PV buffer (if any) and becomes | ||||||
| 4507 | SvPOK_off rather than making a copy. (Used where this | ||||||
| 4508 | scalar is about to be set to some other value.) In addition, | ||||||
| 4509 | the C |
||||||
| 4510 | when unreffing. C |
||||||
| 4511 | with flags set to 0. | ||||||
| 4512 | |||||||
| 4513 | This function is expected to be used to signal to perl that this SV is | ||||||
| 4514 | about to be written to, and any extra book-keeping needs to be taken care | ||||||
| 4515 | of. Hence, it croaks on read-only values. | ||||||
| 4516 | |||||||
| 4517 | void sv_force_normal_flags(SV *const sv, | ||||||
| 4518 | const U32 flags)'},'sv_free' => {'name' => 'sv_free','text' => 'Decrement an SV\'s reference count, and if it drops to zero, call | ||||||
| 4519 | C |
||||||
| 4520 | the body; finally, deallocate the SV\'s head itself. | ||||||
| 4521 | Normally called via a wrapper macro C |
||||||
| 4522 | |||||||
| 4523 | void sv_free(SV *const sv)'},'sv_gets' => {'name' => 'sv_gets','text' => 'Get a line from the filehandle and store it into the SV, optionally | ||||||
| 4524 | appending to the currently-stored string. If C |
||||||
| 4525 | line is appended to the SV instead of overwriting it. C |
||||||
| 4526 | be set to the byte offset that the appended string should start at | ||||||
| 4527 | in the SV (typically, C |
||||||
| 4528 | |||||||
| 4529 | char* sv_gets(SV *const sv, PerlIO *const fp, | ||||||
| 4530 | I32 append)'},'sv_grow' => {'name' => 'sv_grow','text' => 'Expands the character buffer in the SV. If necessary, uses C |
||||||
| 4531 | upgrades the SV to C |
||||||
| 4532 | Use the C |
||||||
| 4533 | |||||||
| 4534 | char* sv_grow(SV *const sv, STRLEN newlen)'},'sv_inc' => {'name' => 'sv_inc','text' => 'Auto-increment of the value in the SV, doing string to numeric conversion | ||||||
| 4535 | if necessary. Handles \'get\' magic and operator overloading. | ||||||
| 4536 | |||||||
| 4537 | void sv_inc(SV *const sv)'},'sv_inc_nomg' => {'name' => 'sv_inc_nomg','text' => 'Auto-increment of the value in the SV, doing string to numeric conversion | ||||||
| 4538 | if necessary. Handles operator overloading. Skips handling \'get\' magic. | ||||||
| 4539 | |||||||
| 4540 | void sv_inc_nomg(SV *const sv)'},'sv_insert' => {'name' => 'sv_insert','text' => 'Inserts a string at the specified offset/length within the SV. Similar to | ||||||
| 4541 | the Perl substr() function. Handles get magic. | ||||||
| 4542 | |||||||
| 4543 | void sv_insert(SV *const bigstr, const STRLEN offset, | ||||||
| 4544 | const STRLEN len, | ||||||
| 4545 | const char *const little, | ||||||
| 4546 | const STRLEN littlelen)'},'sv_insert_flags' => {'name' => 'sv_insert_flags','text' => 'Same as C |
||||||
| 4547 | C |
||||||
| 4548 | |||||||
| 4549 | void sv_insert_flags(SV *const bigstr, | ||||||
| 4550 | const STRLEN offset, | ||||||
| 4551 | const STRLEN len, | ||||||
| 4552 | const char *const little, | ||||||
| 4553 | const STRLEN littlelen, | ||||||
| 4554 | const U32 flags)'},'sv_isa' => {'name' => 'sv_isa','text' => 'Returns a boolean indicating whether the SV is blessed into the specified | ||||||
| 4555 | class. This does not check for subtypes; use C |
||||||
| 4556 | an inheritance relationship. | ||||||
| 4557 | |||||||
| 4558 | int sv_isa(SV* sv, const char *const name)'},'sv_isobject' => {'name' => 'sv_isobject','text' => 'Returns a boolean indicating whether the SV is an RV pointing to a blessed | ||||||
| 4559 | object. If the SV is not an RV, or if the object is not blessed, then this | ||||||
| 4560 | will return false. | ||||||
| 4561 | |||||||
| 4562 | int sv_isobject(SV* sv)'},'sv_iv' => {'name' => 'sv_iv','text' => 'A private implementation of the C |
||||||
| 4563 | cope with complex macro expressions. Always use the macro instead. | ||||||
| 4564 | |||||||
| 4565 | IV sv_iv(SV* sv)'},'sv_len' => {'name' => 'sv_len','text' => 'Returns the length of the string in the SV. Handles magic and type | ||||||
| 4566 | coercion and sets the UTF8 flag appropriately. See also C |
||||||
| 4567 | gives raw access to the xpv_cur slot. | ||||||
| 4568 | |||||||
| 4569 | STRLEN sv_len(SV *const sv)'},'sv_len_utf8' => {'name' => 'sv_len_utf8','text' => 'Returns the number of characters in the string in an SV, counting wide | ||||||
| 4570 | UTF-8 bytes as a single character. Handles magic and type coercion. | ||||||
| 4571 | |||||||
| 4572 | STRLEN sv_len_utf8(SV *const sv)'},'sv_magic' => {'name' => 'sv_magic','text' => 'Adds magic to an SV. First upgrades C |
||||||
| 4573 | necessary, then adds a new magic item of type C |
||||||
| 4574 | magic list. | ||||||
| 4575 | |||||||
| 4576 | See C |
||||||
| 4577 | handling of the C |
||||||
| 4578 | |||||||
| 4579 | You need to use C |
||||||
| 4580 | to add more than one instance of the same \'how\'. | ||||||
| 4581 | |||||||
| 4582 | void sv_magic(SV *const sv, SV *const obj, | ||||||
| 4583 | const int how, const char *const name, | ||||||
| 4584 | const I32 namlen)'},'sv_magicext' => {'name' => 'sv_magicext','text' => 'Adds magic to an SV, upgrading it if necessary. Applies the | ||||||
| 4585 | supplied vtable and returns a pointer to the magic added. | ||||||
| 4586 | |||||||
| 4587 | Note that C |
||||||
| 4588 | In particular, you can add magic to SvREADONLY SVs, and add more than | ||||||
| 4589 | one instance of the same \'how\'. | ||||||
| 4590 | |||||||
| 4591 | If C |
||||||
| 4592 | stored, if C |
||||||
| 4593 | special case - if C<(name && namlen == HEf_SVKEY)> then C |
||||||
| 4594 | to contain an C |
||||||
| 4595 | |||||||
| 4596 | (This is now used as a subroutine by C |
||||||
| 4597 | |||||||
| 4598 | MAGIC * sv_magicext(SV *const sv, SV *const obj, | ||||||
| 4599 | const int how, | ||||||
| 4600 | const MGVTBL *const vtbl, | ||||||
| 4601 | const char *const name, | ||||||
| 4602 | const I32 namlen)'},'sv_mortalcopy' => {'name' => 'sv_mortalcopy','text' => 'Creates a new SV which is a copy of the original SV (using C |
||||||
| 4603 | The new SV is marked as mortal. It will be destroyed "soon", either by an | ||||||
| 4604 | explicit call to FREETMPS, or by an implicit call at places such as | ||||||
| 4605 | statement boundaries. See also C |
||||||
| 4606 | |||||||
| 4607 | SV* sv_mortalcopy(SV *const oldsv)'},'sv_newmortal' => {'name' => 'sv_newmortal','text' => 'Creates a new null SV which is mortal. The reference count of the SV is | ||||||
| 4608 | set to 1. It will be destroyed "soon", either by an explicit call to | ||||||
| 4609 | FREETMPS, or by an implicit call at places such as statement boundaries. | ||||||
| 4610 | See also C |
||||||
| 4611 | |||||||
| 4612 | SV* sv_newmortal()'},'sv_newref' => {'name' => 'sv_newref','text' => 'Increment an SV\'s reference count. Use the C |
||||||
| 4613 | instead. | ||||||
| 4614 | |||||||
| 4615 | SV* sv_newref(SV *const sv)'},'sv_nolocking' => {'name' => 'sv_nolocking','text' => 'Dummy routine which "locks" an SV when there is no locking module present. | ||||||
| 4616 | Exists to avoid test for a NULL function pointer and because it could | ||||||
| 4617 | potentially warn under some level of strict-ness. | ||||||
| 4618 | |||||||
| 4619 | "Superseded" by sv_nosharing(). | ||||||
| 4620 | |||||||
| 4621 | void sv_nolocking(SV *sv)'},'sv_nosharing' => {'name' => 'sv_nosharing','text' => 'Dummy routine which "shares" an SV when there is no sharing module present. | ||||||
| 4622 | Or "locks" it. Or "unlocks" it. In other | ||||||
| 4623 | words, ignores its single SV argument. | ||||||
| 4624 | Exists to avoid test for a NULL function pointer and because it could | ||||||
| 4625 | potentially warn under some level of strict-ness. | ||||||
| 4626 | |||||||
| 4627 | void sv_nosharing(SV *sv)'},'sv_nounlocking' => {'name' => 'sv_nounlocking','text' => 'Dummy routine which "unlocks" an SV when there is no locking module present. | ||||||
| 4628 | Exists to avoid test for a NULL function pointer and because it could | ||||||
| 4629 | potentially warn under some level of strict-ness. | ||||||
| 4630 | |||||||
| 4631 | "Superseded" by sv_nosharing(). | ||||||
| 4632 | |||||||
| 4633 | void sv_nounlocking(SV *sv)'},'sv_nv' => {'name' => 'sv_nv','text' => 'A private implementation of the C |
||||||
| 4634 | cope with complex macro expressions. Always use the macro instead. | ||||||
| 4635 | |||||||
| 4636 | NV sv_nv(SV* sv)'},'sv_peek' => {'name' => 'sv_peek','text' => ''},'sv_pos_b2u' => {'name' => 'sv_pos_b2u','text' => 'Converts the value pointed to by offsetp from a count of bytes from the | ||||||
| 4637 | start of the string, to a count of the equivalent number of UTF-8 chars. | ||||||
| 4638 | Handles magic and type coercion. | ||||||
| 4639 | |||||||
| 4640 | Use C |
||||||
| 4641 | longer than 2Gb. | ||||||
| 4642 | |||||||
| 4643 | void sv_pos_b2u(SV *const sv, I32 *const offsetp)'},'sv_pos_b2u_flags' => {'name' => 'sv_pos_b2u_flags','text' => 'Converts the offset from a count of bytes from the start of the string, to | ||||||
| 4644 | a count of the equivalent number of UTF-8 chars. Handles type coercion. | ||||||
| 4645 | I |
||||||
| 4646 | C |
||||||
| 4647 | |||||||
| 4648 | STRLEN sv_pos_b2u_flags(SV *const sv, | ||||||
| 4649 | STRLEN const offset, U32 flags)'},'sv_pos_u2b' => {'name' => 'sv_pos_u2b','text' => 'Converts the value pointed to by offsetp from a count of UTF-8 chars from | ||||||
| 4650 | the start of the string, to a count of the equivalent number of bytes; if | ||||||
| 4651 | lenp is non-zero, it does the same to lenp, but this time starting from | ||||||
| 4652 | the offset, rather than from the start of the string. Handles magic and | ||||||
| 4653 | type coercion. | ||||||
| 4654 | |||||||
| 4655 | Use C |
||||||
| 4656 | than 2Gb. | ||||||
| 4657 | |||||||
| 4658 | void sv_pos_u2b(SV *const sv, I32 *const offsetp, | ||||||
| 4659 | I32 *const lenp)'},'sv_pos_u2b_flags' => {'name' => 'sv_pos_u2b_flags','text' => 'Converts the offset from a count of UTF-8 chars from | ||||||
| 4660 | the start of the string, to a count of the equivalent number of bytes; if | ||||||
| 4661 | lenp is non-zero, it does the same to lenp, but this time starting from | ||||||
| 4662 | the offset, rather than from the start | ||||||
| 4663 | of the string. Handles type coercion. | ||||||
| 4664 | I |
||||||
| 4665 | C |
||||||
| 4666 | |||||||
| 4667 | STRLEN sv_pos_u2b_flags(SV *const sv, STRLEN uoffset, | ||||||
| 4668 | STRLEN *const lenp, U32 flags)'},'sv_pv' => {'name' => 'sv_pv','text' => 'Use the C |
||||||
| 4669 | |||||||
| 4670 | char* sv_pv(SV *sv)'},'sv_pvbyte' => {'name' => 'sv_pvbyte','text' => 'Use C |
||||||
| 4671 | |||||||
| 4672 | char* sv_pvbyte(SV *sv)'},'sv_pvbyten' => {'name' => 'sv_pvbyten','text' => 'A private implementation of the C |
||||||
| 4673 | which can\'t cope with complex macro expressions. Always use the macro | ||||||
| 4674 | instead. | ||||||
| 4675 | |||||||
| 4676 | char* sv_pvbyten(SV *sv, STRLEN *lp)'},'sv_pvbyten_force' => {'name' => 'sv_pvbyten_force','text' => 'The backend for the C |
||||||
| 4677 | instead. | ||||||
| 4678 | |||||||
| 4679 | char* sv_pvbyten_force(SV *const sv, STRLEN *const lp)'},'sv_pvn' => {'name' => 'sv_pvn','text' => 'A private implementation of the C |
||||||
| 4680 | cope with complex macro expressions. Always use the macro instead. | ||||||
| 4681 | |||||||
| 4682 | char* sv_pvn(SV *sv, STRLEN *lp)'},'sv_pvn_force' => {'name' => 'sv_pvn_force','text' => 'Get a sensible string out of the SV somehow. | ||||||
| 4683 | A private implementation of the C |
||||||
| 4684 | can\'t cope with complex macro expressions. Always use the macro instead. | ||||||
| 4685 | |||||||
| 4686 | char* sv_pvn_force(SV* sv, STRLEN* lp)'},'sv_pvn_force_flags' => {'name' => 'sv_pvn_force_flags','text' => 'Get a sensible string out of the SV somehow. | ||||||
| 4687 | If C |
||||||
| 4688 | appropriate, else not. C |
||||||
| 4689 | implemented in terms of this function. | ||||||
| 4690 | You normally want to use the various wrapper macros instead: see | ||||||
| 4691 | C |
||||||
| 4692 | |||||||
| 4693 | char* sv_pvn_force_flags(SV *const sv, | ||||||
| 4694 | STRLEN *const lp, | ||||||
| 4695 | const I32 flags)'},'sv_pvn_nomg' => {'name' => 'sv_pvn_nomg','text' => ''},'sv_pvutf8' => {'name' => 'sv_pvutf8','text' => 'Use the C |
||||||
| 4696 | |||||||
| 4697 | char* sv_pvutf8(SV *sv)'},'sv_pvutf8n' => {'name' => 'sv_pvutf8n','text' => 'A private implementation of the C |
||||||
| 4698 | which can\'t cope with complex macro expressions. Always use the macro | ||||||
| 4699 | instead. | ||||||
| 4700 | |||||||
| 4701 | char* sv_pvutf8n(SV *sv, STRLEN *lp)'},'sv_pvutf8n_force' => {'name' => 'sv_pvutf8n_force','text' => 'The backend for the C |
||||||
| 4702 | instead. | ||||||
| 4703 | |||||||
| 4704 | char* sv_pvutf8n_force(SV *const sv, STRLEN *const lp)'},'sv_recode_to_utf8' => {'name' => 'sv_recode_to_utf8','text' => 'The encoding is assumed to be an Encode object, on entry the PV | ||||||
| 4705 | of the sv is assumed to be octets in that encoding, and the sv | ||||||
| 4706 | will be converted into Unicode (and UTF-8). | ||||||
| 4707 | |||||||
| 4708 | If the sv already is UTF-8 (or if it is not POK), or if the encoding | ||||||
| 4709 | is not a reference, nothing is done to the sv. If the encoding is not | ||||||
| 4710 | an C |
||||||
| 4711 | (See F |
||||||
| 4712 | |||||||
| 4713 | The PV of the sv is returned. | ||||||
| 4714 | |||||||
| 4715 | char* sv_recode_to_utf8(SV* sv, SV *encoding)'},'sv_reftype' => {'name' => 'sv_reftype','text' => 'Returns a string describing what the SV is a reference to. | ||||||
| 4716 | |||||||
| 4717 | const char* sv_reftype(const SV *const sv, const int ob)'},'sv_replace' => {'name' => 'sv_replace','text' => 'Make the first argument a copy of the second, then delete the original. | ||||||
| 4718 | The target SV physically takes over ownership of the body of the source SV | ||||||
| 4719 | and inherits its flags; however, the target keeps any magic it owns, | ||||||
| 4720 | and any magic in the source is discarded. | ||||||
| 4721 | Note that this is a rather specialist SV copying operation; most of the | ||||||
| 4722 | time you\'ll want to use C |
||||||
| 4723 | |||||||
| 4724 | void sv_replace(SV *const sv, SV *const nsv)'},'sv_report_used' => {'name' => 'sv_report_used','text' => 'Dump the contents of all SVs not yet freed (debugging aid). | ||||||
| 4725 | |||||||
| 4726 | void sv_report_used()'},'sv_reset' => {'name' => 'sv_reset','text' => 'Underlying implementation for the C |
||||||
| 4727 | Note that the perl-level function is vaguely deprecated. | ||||||
| 4728 | |||||||
| 4729 | void sv_reset(const char* s, HV *const stash)'},'sv_rvweaken' => {'name' => 'sv_rvweaken','text' => 'Weaken a reference: set the C |
||||||
| 4730 | referred-to SV C |
||||||
| 4731 | push a back-reference to this RV onto the array of backreferences | ||||||
| 4732 | associated with that magic. If the RV is magical, set magic will be | ||||||
| 4733 | called after the RV is cleared. | ||||||
| 4734 | |||||||
| 4735 | SV* sv_rvweaken(SV *const sv)'},'sv_setiv' => {'name' => 'sv_setiv','text' => 'Copies an integer into the given SV, upgrading first if necessary. | ||||||
| 4736 | Does not handle \'set\' magic. See also C |
||||||
| 4737 | |||||||
| 4738 | void sv_setiv(SV *const sv, const IV num)'},'sv_setiv_mg' => {'name' => 'sv_setiv_mg','text' => 'Like C |
||||||
| 4739 | |||||||
| 4740 | void sv_setiv_mg(SV *const sv, const IV i)'},'sv_setnv' => {'name' => 'sv_setnv','text' => 'Copies a double into the given SV, upgrading first if necessary. | ||||||
| 4741 | Does not handle \'set\' magic. See also C |
||||||
| 4742 | |||||||
| 4743 | void sv_setnv(SV *const sv, const NV num)'},'sv_setnv_mg' => {'name' => 'sv_setnv_mg','text' => 'Like C |
||||||
| 4744 | |||||||
| 4745 | void sv_setnv_mg(SV *const sv, const NV num)'},'sv_setpv' => {'name' => 'sv_setpv','text' => 'Copies a string into an SV. The string must be terminated with a C |
||||||
| 4746 | character. | ||||||
| 4747 | Does not handle \'set\' magic. See C |
||||||
| 4748 | |||||||
| 4749 | void sv_setpv(SV *const sv, const char *const ptr)'},'sv_setpv_mg' => {'name' => 'sv_setpv_mg','text' => 'Like C |
||||||
| 4750 | |||||||
| 4751 | void sv_setpv_mg(SV *const sv, const char *const ptr)'},'sv_setpvf' => {'name' => 'sv_setpvf','text' => 'Works like C |
||||||
| 4752 | appending it. Does not handle \'set\' magic. See C |
||||||
| 4753 | |||||||
| 4754 | void sv_setpvf(SV *const sv, const char *const pat, | ||||||
| 4755 | ...)'},'sv_setpvf_mg' => {'name' => 'sv_setpvf_mg','text' => 'Like C |
||||||
| 4756 | |||||||
| 4757 | void sv_setpvf_mg(SV *const sv, | ||||||
| 4758 | const char *const pat, ...)'},'sv_setpvf_mg_nocontext' => {'name' => 'sv_setpvf_mg_nocontext','text' => ''},'sv_setpvf_nocontext' => {'name' => 'sv_setpvf_nocontext','text' => ''},'sv_setpviv' => {'name' => 'sv_setpviv','text' => 'Copies an integer into the given SV, also updating its string value. | ||||||
| 4759 | Does not handle \'set\' magic. See C |
||||||
| 4760 | |||||||
| 4761 | void sv_setpviv(SV *const sv, const IV num)'},'sv_setpviv_mg' => {'name' => 'sv_setpviv_mg','text' => 'Like C |
||||||
| 4762 | |||||||
| 4763 | void sv_setpviv_mg(SV *const sv, const IV iv)'},'sv_setpvn' => {'name' => 'sv_setpvn','text' => 'Copies a string (possibly containing embedded C |
||||||
| 4764 | The C |
||||||
| 4765 | bytes to be copied. If the C |
||||||
| 4766 | undefined. Does not handle \'set\' magic. See C |
||||||
| 4767 | |||||||
| 4768 | void sv_setpvn(SV *const sv, const char *const ptr, | ||||||
| 4769 | const STRLEN len)'},'sv_setpvn_mg' => {'name' => 'sv_setpvn_mg','text' => 'Like C |
||||||
| 4770 | |||||||
| 4771 | void sv_setpvn_mg(SV *const sv, | ||||||
| 4772 | const char *const ptr, | ||||||
| 4773 | const STRLEN len)'},'sv_setpvs' => {'name' => 'sv_setpvs','text' => 'Like C |
||||||
| 4774 | |||||||
| 4775 | void sv_setpvs(SV* sv, const char* s)'},'sv_setpvs_mg' => {'name' => 'sv_setpvs_mg','text' => 'Like C |
||||||
| 4776 | string/length pair. | ||||||
| 4777 | |||||||
| 4778 | void sv_setpvs_mg(SV* sv, const char* s)'},'sv_setref_iv' => {'name' => 'sv_setref_iv','text' => 'Copies an integer into a new SV, optionally blessing the SV. The C |
||||||
| 4779 | argument will be upgraded to an RV. That RV will be modified to point to | ||||||
| 4780 | the new SV. The C |
||||||
| 4781 | blessing. Set C |
||||||
| 4782 | will have a reference count of 1, and the RV will be returned. | ||||||
| 4783 | |||||||
| 4784 | SV* sv_setref_iv(SV *const rv, | ||||||
| 4785 | const char *const classname, | ||||||
| 4786 | const IV iv)'},'sv_setref_nv' => {'name' => 'sv_setref_nv','text' => 'Copies a double into a new SV, optionally blessing the SV. The C |
||||||
| 4787 | argument will be upgraded to an RV. That RV will be modified to point to | ||||||
| 4788 | the new SV. The C |
||||||
| 4789 | blessing. Set C |
||||||
| 4790 | will have a reference count of 1, and the RV will be returned. | ||||||
| 4791 | |||||||
| 4792 | SV* sv_setref_nv(SV *const rv, | ||||||
| 4793 | const char *const classname, | ||||||
| 4794 | const NV nv)'},'sv_setref_pv' => {'name' => 'sv_setref_pv','text' => 'Copies a pointer into a new SV, optionally blessing the SV. The C |
||||||
| 4795 | argument will be upgraded to an RV. That RV will be modified to point to | ||||||
| 4796 | the new SV. If the C |
||||||
| 4797 | into the SV. The C |
||||||
| 4798 | blessing. Set C |
||||||
| 4799 | will have a reference count of 1, and the RV will be returned. | ||||||
| 4800 | |||||||
| 4801 | Do not use with other Perl types such as HV, AV, SV, CV, because those | ||||||
| 4802 | objects will become corrupted by the pointer copy process. | ||||||
| 4803 | |||||||
| 4804 | Note that C |
||||||
| 4805 | |||||||
| 4806 | SV* sv_setref_pv(SV *const rv, | ||||||
| 4807 | const char *const classname, | ||||||
| 4808 | void *const pv)'},'sv_setref_pvn' => {'name' => 'sv_setref_pvn','text' => 'Copies a string into a new SV, optionally blessing the SV. The length of the | ||||||
| 4809 | string must be specified with C |
||||||
| 4810 | an RV. That RV will be modified to point to the new SV. The C |
||||||
| 4811 | argument indicates the package for the blessing. Set C |
||||||
| 4812 | C |
||||||
| 4813 | of 1, and the RV will be returned. | ||||||
| 4814 | |||||||
| 4815 | Note that C |
||||||
| 4816 | |||||||
| 4817 | SV* sv_setref_pvn(SV *const rv, | ||||||
| 4818 | const char *const classname, | ||||||
| 4819 | const char *const pv, | ||||||
| 4820 | const STRLEN n)'},'sv_setref_pvs' => {'name' => 'sv_setref_pvs','text' => 'Like C |
||||||
| 4821 | string/length pair. | ||||||
| 4822 | |||||||
| 4823 | SV * sv_setref_pvs(const char* s)'},'sv_setref_uv' => {'name' => 'sv_setref_uv','text' => 'Copies an unsigned integer into a new SV, optionally blessing the SV. The C |
||||||
| 4824 | argument will be upgraded to an RV. That RV will be modified to point to | ||||||
| 4825 | the new SV. The C |
||||||
| 4826 | blessing. Set C |
||||||
| 4827 | will have a reference count of 1, and the RV will be returned. | ||||||
| 4828 | |||||||
| 4829 | SV* sv_setref_uv(SV *const rv, | ||||||
| 4830 | const char *const classname, | ||||||
| 4831 | const UV uv)'},'sv_setsv' => {'name' => 'sv_setsv','text' => 'Copies the contents of the source SV C |
||||||
| 4832 | C |
||||||
| 4833 | function if the source SV needs to be reused. Does not handle \'set\' magic on | ||||||
| 4834 | destination SV. Calls \'get\' magic on source SV. Loosely speaking, it | ||||||
| 4835 | performs a copy-by-value, obliterating any previous content of the | ||||||
| 4836 | destination. | ||||||
| 4837 | |||||||
| 4838 | You probably want to use one of the assortment of wrappers, such as | ||||||
| 4839 | C |
||||||
| 4840 | C |
||||||
| 4841 | |||||||
| 4842 | void sv_setsv(SV *dstr, SV *sstr)'},'sv_setsv_flags' => {'name' => 'sv_setsv_flags','text' => 'Copies the contents of the source SV C |
||||||
| 4843 | C |
||||||
| 4844 | function if the source SV needs to be reused. Does not handle \'set\' magic. | ||||||
| 4845 | Loosely speaking, it performs a copy-by-value, obliterating any previous | ||||||
| 4846 | content of the destination. | ||||||
| 4847 | If the C |
||||||
| 4848 | C |
||||||
| 4849 | parameter has the C |
||||||
| 4850 | buffers of temps will not be stolen. |
||||||
| 4851 | and C |
||||||
| 4852 | |||||||
| 4853 | You probably want to use one of the assortment of wrappers, such as | ||||||
| 4854 | C |
||||||
| 4855 | C |
||||||
| 4856 | |||||||
| 4857 | This is the primary function for copying scalars, and most other | ||||||
| 4858 | copy-ish functions and macros use this underneath. | ||||||
| 4859 | |||||||
| 4860 | void sv_setsv_flags(SV *dstr, SV *sstr, | ||||||
| 4861 | const I32 flags)'},'sv_setsv_mg' => {'name' => 'sv_setsv_mg','text' => 'Like C |
||||||
| 4862 | |||||||
| 4863 | void sv_setsv_mg(SV *const dstr, SV *const sstr)'},'sv_setsv_nomg' => {'name' => 'sv_setsv_nomg','text' => 'Like C |
||||||
| 4864 | |||||||
| 4865 | void sv_setsv_nomg(SV* dsv, SV* ssv)'},'sv_setuv' => {'name' => 'sv_setuv','text' => 'Copies an unsigned integer into the given SV, upgrading first if necessary. | ||||||
| 4866 | Does not handle \'set\' magic. See also C |
||||||
| 4867 | |||||||
| 4868 | void sv_setuv(SV *const sv, const UV num)'},'sv_setuv_mg' => {'name' => 'sv_setuv_mg','text' => 'Like C |
||||||
| 4869 | |||||||
| 4870 | void sv_setuv_mg(SV *const sv, const UV u)'},'sv_taint' => {'name' => 'sv_taint','text' => 'Taint an SV. Use C |
||||||
| 4871 | |||||||
| 4872 | void sv_taint(SV* sv)'},'sv_tainted' => {'name' => 'sv_tainted','text' => 'Test an SV for taintedness. Use C |
||||||
| 4873 | |||||||
| 4874 | bool sv_tainted(SV *const sv)'},'sv_true' => {'name' => 'sv_true','text' => 'Returns true if the SV has a true value by Perl\'s rules. | ||||||
| 4875 | Use the C |
||||||
| 4876 | instead use an in-line version. | ||||||
| 4877 | |||||||
| 4878 | I32 sv_true(SV *const sv)'},'sv_uni_display' => {'name' => 'sv_uni_display','text' => 'Build to the scalar C |
||||||
| 4879 | the displayable version being at most C |
||||||
| 4880 | (if longer, the rest is truncated and "..." will be appended). | ||||||
| 4881 | |||||||
| 4882 | The C |
||||||
| 4883 | |||||||
| 4884 | The pointer to the PV of the C |
||||||
| 4885 | |||||||
| 4886 | char* sv_uni_display(SV *dsv, SV *ssv, STRLEN pvlim, | ||||||
| 4887 | UV flags)'},'sv_unmagic' => {'name' => 'sv_unmagic','text' => 'Removes all magic of type C |
||||||
| 4888 | |||||||
| 4889 | int sv_unmagic(SV *const sv, const int type)'},'sv_unmagicext' => {'name' => 'sv_unmagicext','text' => 'Removes all magic of type C |
||||||
| 4890 | |||||||
| 4891 | int sv_unmagicext(SV *const sv, const int type, | ||||||
| 4892 | MGVTBL *vtbl)'},'sv_unref' => {'name' => 'sv_unref','text' => 'Unsets the RV status of the SV, and decrements the reference count of | ||||||
| 4893 | whatever was being referenced by the RV. This can almost be thought of | ||||||
| 4894 | as a reversal of C |
||||||
| 4895 | being zero. See C |
||||||
| 4896 | |||||||
| 4897 | void sv_unref(SV* sv)'},'sv_unref_flags' => {'name' => 'sv_unref_flags','text' => 'Unsets the RV status of the SV, and decrements the reference count of | ||||||
| 4898 | whatever was being referenced by the RV. This can almost be thought of | ||||||
| 4899 | as a reversal of C |
||||||
| 4900 | C |
||||||
| 4901 | (otherwise the decrementing is conditional on the reference count being | ||||||
| 4902 | different from one or the reference being a readonly SV). | ||||||
| 4903 | See C |
||||||
| 4904 | |||||||
| 4905 | void sv_unref_flags(SV *const ref, const U32 flags)'},'sv_untaint' => {'name' => 'sv_untaint','text' => 'Untaint an SV. Use C |
||||||
| 4906 | |||||||
| 4907 | void sv_untaint(SV *const sv)'},'sv_upgrade' => {'name' => 'sv_upgrade','text' => 'Upgrade an SV to a more complex form. Generally adds a new body type to the | ||||||
| 4908 | SV, then copies across as much information as possible from the old body. | ||||||
| 4909 | It croaks if the SV is already in a more complex form than requested. You | ||||||
| 4910 | generally want to use the C |
||||||
| 4911 | before calling C |
||||||
| 4912 | C |
||||||
| 4913 | |||||||
| 4914 | void sv_upgrade(SV *const sv, svtype new_type)'},'sv_usepvn' => {'name' => 'sv_usepvn','text' => 'Tells an SV to use C |
||||||
| 4915 | calling C |
||||||
| 4916 | magic. See C |
||||||
| 4917 | |||||||
| 4918 | void sv_usepvn(SV* sv, char* ptr, STRLEN len)'},'sv_usepvn_flags' => {'name' => 'sv_usepvn_flags','text' => 'Tells an SV to use C |
||||||
| 4919 | string is stored inside the SV, but sv_usepvn allows the SV to use an | ||||||
| 4920 | outside string. The C |
||||||
| 4921 | by L |
||||||
| 4922 | the start of a Newx-ed block of memory, and not a pointer to the | ||||||
| 4923 | middle of it (beware of L |
||||||
| 4924 | and not be from a non-Newx memory allocator like C |
||||||
| 4925 | string length, C |
||||||
| 4926 | will C |
||||||
| 4927 | so that pointer should not be freed or used by the programmer after | ||||||
| 4928 | giving it to sv_usepvn, and neither should any pointers from "behind" | ||||||
| 4929 | that pointer (e.g. ptr + 1) be used. | ||||||
| 4930 | |||||||
| 4931 | If C |
||||||
| 4932 | SV_HAS_TRAILING_NUL is true, then C |
||||||
| 4933 | will be skipped (i.e. the buffer is actually at least 1 byte longer than | ||||||
| 4934 | C |
||||||
| 4935 | |||||||
| 4936 | void sv_usepvn_flags(SV *const sv, char* ptr, | ||||||
| 4937 | const STRLEN len, | ||||||
| 4938 | const U32 flags)'},'sv_usepvn_mg' => {'name' => 'sv_usepvn_mg','text' => 'Like C |
||||||
| 4939 | |||||||
| 4940 | void sv_usepvn_mg(SV *sv, char *ptr, STRLEN len)'},'sv_utf8_decode' => {'name' => 'sv_utf8_decode','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 4941 | removed without notice. | ||||||
| 4942 | |||||||
| 4943 | |||||||
| 4944 | If the PV of the SV is an octet sequence in UTF-8 | ||||||
| 4945 | and contains a multiple-byte character, the C |
||||||
| 4946 | so that it looks like a character. If the PV contains only single-byte | ||||||
| 4947 | characters, the C |
||||||
| 4948 | Scans PV for validity and returns false if the PV is invalid UTF-8. | ||||||
| 4949 | |||||||
| 4950 | bool sv_utf8_decode(SV *const sv)'},'sv_utf8_downgrade' => {'name' => 'sv_utf8_downgrade','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 4951 | removed without notice. | ||||||
| 4952 | |||||||
| 4953 | |||||||
| 4954 | Attempts to convert the PV of an SV from characters to bytes. | ||||||
| 4955 | If the PV contains a character that cannot fit | ||||||
| 4956 | in a byte, this conversion will fail; | ||||||
| 4957 | in this case, either returns false or, if C |
||||||
| 4958 | true, croaks. | ||||||
| 4959 | |||||||
| 4960 | This is not a general purpose Unicode to byte encoding interface: | ||||||
| 4961 | use the Encode extension for that. | ||||||
| 4962 | |||||||
| 4963 | bool sv_utf8_downgrade(SV *const sv, | ||||||
| 4964 | const bool fail_ok)'},'sv_utf8_encode' => {'name' => 'sv_utf8_encode','text' => 'Converts the PV of an SV to UTF-8, but then turns the C |
||||||
| 4965 | flag off so that it looks like octets again. | ||||||
| 4966 | |||||||
| 4967 | void sv_utf8_encode(SV *const sv)'},'sv_utf8_upgrade' => {'name' => 'sv_utf8_upgrade','text' => 'Converts the PV of an SV to its UTF-8-encoded form. | ||||||
| 4968 | Forces the SV to string form if it is not already. | ||||||
| 4969 | Will C |
||||||
| 4970 | Always sets the SvUTF8 flag to avoid future validity checks even | ||||||
| 4971 | if the whole string is the same in UTF-8 as not. | ||||||
| 4972 | Returns the number of bytes in the converted string | ||||||
| 4973 | |||||||
| 4974 | This is not a general purpose byte encoding to Unicode interface: | ||||||
| 4975 | use the Encode extension for that. | ||||||
| 4976 | |||||||
| 4977 | STRLEN sv_utf8_upgrade(SV *sv)'},'sv_utf8_upgrade_flags' => {'name' => 'sv_utf8_upgrade_flags','text' => 'Converts the PV of an SV to its UTF-8-encoded form. | ||||||
| 4978 | Forces the SV to string form if it is not already. | ||||||
| 4979 | Always sets the SvUTF8 flag to avoid future validity checks even | ||||||
| 4980 | if all the bytes are invariant in UTF-8. | ||||||
| 4981 | If C |
||||||
| 4982 | will C |
||||||
| 4983 | |||||||
| 4984 | If C |
||||||
| 4985 | will expand when converted to UTF-8, and skips the extra work of checking for | ||||||
| 4986 | that. Typically this flag is used by a routine that has already parsed the | ||||||
| 4987 | string and found such characters, and passes this information on so that the | ||||||
| 4988 | work doesn\'t have to be repeated. | ||||||
| 4989 | |||||||
| 4990 | Returns the number of bytes in the converted string. | ||||||
| 4991 | |||||||
| 4992 | This is not a general purpose byte encoding to Unicode interface: | ||||||
| 4993 | use the Encode extension for that. | ||||||
| 4994 | |||||||
| 4995 | STRLEN sv_utf8_upgrade_flags(SV *const sv, | ||||||
| 4996 | const I32 flags)'},'sv_utf8_upgrade_flags_grow' => {'name' => 'sv_utf8_upgrade_flags_grow','text' => 'Like sv_utf8_upgrade_flags, but has an additional parameter C |
||||||
| 4997 | the number of unused bytes the string of \'sv\' is guaranteed to have free after | ||||||
| 4998 | it upon return. This allows the caller to reserve extra space that it intends | ||||||
| 4999 | to fill, to avoid extra grows. | ||||||
| 5000 | |||||||
| 5001 | C |
||||||
| 5002 | are implemented in terms of this function. | ||||||
| 5003 | |||||||
| 5004 | Returns the number of bytes in the converted string (not including the spares). | ||||||
| 5005 | |||||||
| 5006 | STRLEN sv_utf8_upgrade_flags_grow(SV *const sv, | ||||||
| 5007 | const I32 flags, | ||||||
| 5008 | STRLEN extra)'},'sv_utf8_upgrade_nomg' => {'name' => 'sv_utf8_upgrade_nomg','text' => 'Like sv_utf8_upgrade, but doesn\'t do magic on C |
||||||
| 5009 | |||||||
| 5010 | STRLEN sv_utf8_upgrade_nomg(SV *sv)'},'sv_uv' => {'name' => 'sv_uv','text' => 'A private implementation of the C |
||||||
| 5011 | cope with complex macro expressions. Always use the macro instead. | ||||||
| 5012 | |||||||
| 5013 | UV sv_uv(SV* sv)'},'sv_vcatpvf' => {'name' => 'sv_vcatpvf','text' => 'Processes its arguments like C |
||||||
| 5014 | to an SV. Does not handle \'set\' magic. See C |
||||||
| 5015 | |||||||
| 5016 | Usually used via its frontend C |
||||||
| 5017 | |||||||
| 5018 | void sv_vcatpvf(SV *const sv, const char *const pat, | ||||||
| 5019 | va_list *const args)'},'sv_vcatpvf_mg' => {'name' => 'sv_vcatpvf_mg','text' => 'Like C |
||||||
| 5020 | |||||||
| 5021 | Usually used via its frontend C |
||||||
| 5022 | |||||||
| 5023 | void sv_vcatpvf_mg(SV *const sv, | ||||||
| 5024 | const char *const pat, | ||||||
| 5025 | va_list *const args)'},'sv_vcatpvfn' => {'name' => 'sv_vcatpvfn','text' => 'void sv_vcatpvfn(SV *const sv, const char *const pat, | ||||||
| 5026 | const STRLEN patlen, | ||||||
| 5027 | va_list *const args, | ||||||
| 5028 | SV **const svargs, const I32 svmax, | ||||||
| 5029 | bool *const maybe_tainted)'},'sv_vcatpvfn_flags' => {'name' => 'sv_vcatpvfn_flags','text' => 'Processes its arguments like C |
||||||
| 5030 | to an SV. Uses an array of SVs if the C style variable argument list is | ||||||
| 5031 | missing (NULL). When running with taint checks enabled, indicates via | ||||||
| 5032 | C |
||||||
| 5033 | locales). | ||||||
| 5034 | |||||||
| 5035 | If called as C |
||||||
| 5036 | |||||||
| 5037 | Usually used via one of its frontends C |
||||||
| 5038 | |||||||
| 5039 | void sv_vcatpvfn_flags(SV *const sv, | ||||||
| 5040 | const char *const pat, | ||||||
| 5041 | const STRLEN patlen, | ||||||
| 5042 | va_list *const args, | ||||||
| 5043 | SV **const svargs, | ||||||
| 5044 | const I32 svmax, | ||||||
| 5045 | bool *const maybe_tainted, | ||||||
| 5046 | const U32 flags)'},'sv_vsetpvf' => {'name' => 'sv_vsetpvf','text' => 'Works like C |
||||||
| 5047 | appending it. Does not handle \'set\' magic. See C |
||||||
| 5048 | |||||||
| 5049 | Usually used via its frontend C |
||||||
| 5050 | |||||||
| 5051 | void sv_vsetpvf(SV *const sv, const char *const pat, | ||||||
| 5052 | va_list *const args)'},'sv_vsetpvf_mg' => {'name' => 'sv_vsetpvf_mg','text' => 'Like C |
||||||
| 5053 | |||||||
| 5054 | Usually used via its frontend C |
||||||
| 5055 | |||||||
| 5056 | void sv_vsetpvf_mg(SV *const sv, | ||||||
| 5057 | const char *const pat, | ||||||
| 5058 | va_list *const args)'},'sv_vsetpvfn' => {'name' => 'sv_vsetpvfn','text' => 'Works like C |
||||||
| 5059 | appending it. | ||||||
| 5060 | |||||||
| 5061 | Usually used via one of its frontends C |
||||||
| 5062 | |||||||
| 5063 | void sv_vsetpvfn(SV *const sv, const char *const pat, | ||||||
| 5064 | const STRLEN patlen, | ||||||
| 5065 | va_list *const args, | ||||||
| 5066 | SV **const svargs, const I32 svmax, | ||||||
| 5067 | bool *const maybe_tainted)'},'svtype' => {'name' => 'svtype','text' => 'An enum of flags for Perl types. These are found in the file B |
||||||
| 5068 | in the C |
||||||
| 5069 | |||||||
| 5070 | The types are: | ||||||
| 5071 | |||||||
| 5072 | SVt_NULL | ||||||
| 5073 | SVt_IV | ||||||
| 5074 | SVt_NV | ||||||
| 5075 | SVt_RV | ||||||
| 5076 | SVt_PV | ||||||
| 5077 | SVt_PVIV | ||||||
| 5078 | SVt_PVNV | ||||||
| 5079 | SVt_PVMG | ||||||
| 5080 | SVt_INVLIST | ||||||
| 5081 | SVt_REGEXP | ||||||
| 5082 | SVt_PVGV | ||||||
| 5083 | SVt_PVLV | ||||||
| 5084 | SVt_PVAV | ||||||
| 5085 | SVt_PVHV | ||||||
| 5086 | SVt_PVCV | ||||||
| 5087 | SVt_PVFM | ||||||
| 5088 | SVt_PVIO | ||||||
| 5089 | |||||||
| 5090 | These are most easily explained from the bottom up. | ||||||
| 5091 | |||||||
| 5092 | SVt_PVIO is for I/O objects, SVt_PVFM for formats, SVt_PVCV for | ||||||
| 5093 | subroutines, SVt_PVHV for hashes and SVt_PVAV for arrays. | ||||||
| 5094 | |||||||
| 5095 | All the others are scalar types, that is, things that can be bound to a | ||||||
| 5096 | C<$> variable. For these, the internal types are mostly orthogonal to | ||||||
| 5097 | types in the Perl language. | ||||||
| 5098 | |||||||
| 5099 | Hence, checking C<< SvTYPE(sv) < SVt_PVAV >> is the best way to see whether | ||||||
| 5100 | something is a scalar. | ||||||
| 5101 | |||||||
| 5102 | SVt_PVGV represents a typeglob. If !SvFAKE(sv), then it is a real, | ||||||
| 5103 | incoercible typeglob. If SvFAKE(sv), then it is a scalar to which a | ||||||
| 5104 | typeglob has been assigned. Assigning to it again will stop it from being | ||||||
| 5105 | a typeglob. SVt_PVLV represents a scalar that delegates to another scalar | ||||||
| 5106 | behind the scenes. It is used, e.g., for the return value of C |
||||||
| 5107 | for tied hash and array elements. It can hold any scalar value, including | ||||||
| 5108 | a typeglob. SVt_REGEXP is for regular | ||||||
| 5109 | expressions. SVt_INVLIST is for Perl | ||||||
| 5110 | core internal use only. | ||||||
| 5111 | |||||||
| 5112 | SVt_PVMG represents a "normal" scalar (not a typeglob, regular expression, | ||||||
| 5113 | or delegate). Since most scalars do not need all the internal fields of a | ||||||
| 5114 | PVMG, we save memory by allocating smaller structs when possible. All the | ||||||
| 5115 | other types are just simpler forms of SVt_PVMG, with fewer internal fields. | ||||||
| 5116 | SVt_NULL can only hold undef. SVt_IV can hold undef, an integer, or a | ||||||
| 5117 | reference. (SVt_RV is an alias for SVt_IV, which exists for backward | ||||||
| 5118 | compatibility.) SVt_NV can hold any of those or a double. SVt_PV can only | ||||||
| 5119 | hold undef or a string. SVt_PVIV is a superset of SVt_PV and SVt_IV. | ||||||
| 5120 | SVt_PVNV is similar. SVt_PVMG can hold anything SVt_PVNV can hold, but it | ||||||
| 5121 | can, but does not have to, be blessed or magical.'},'swash_fetch' => {'name' => 'swash_fetch','text' => ''},'swash_init' => {'name' => 'swash_init','text' => ''},'sync_locale' => {'name' => 'sync_locale','text' => 'Changing the program\'s locale should be avoided by XS code. Nevertheless, | ||||||
| 5122 | certain non-Perl libraries called from XS, such as C |
||||||
| 5123 | happens, Perl needs to be told that the locale has changed. Use this macro | ||||||
| 5124 | to do so, before returning to Perl code. | ||||||
| 5125 | |||||||
| 5126 | void sync_locale()'},'sys_init' => {'name' => 'sys_init','text' => ''},'sys_init3' => {'name' => 'sys_init3','text' => ''},'sys_intern_clear' => {'name' => 'sys_intern_clear','text' => ''},'sys_intern_dup' => {'name' => 'sys_intern_dup','text' => ''},'sys_intern_init' => {'name' => 'sys_intern_init','text' => ''},'sys_term' => {'name' => 'sys_term','text' => ''},'taint_env' => {'name' => 'taint_env','text' => ''},'taint_proper' => {'name' => 'taint_proper','text' => ''},'tmps_grow' => {'name' => 'tmps_grow','text' => ''},'toFOLD' => {'name' => 'toFOLD','text' => 'Converts the specified character to foldcase. If the input is anything but an | ||||||
| 5127 | ASCII uppercase character, that input character itself is returned. Variant | ||||||
| 5128 | C |
||||||
| 5129 | Latin1 range, as the full generality of L is needed there.) | ||||||
| 5130 | |||||||
| 5131 | U8 toFOLD(U8 ch)'},'toFOLD_uni' => {'name' => 'toFOLD_uni','text' => 'Converts the Unicode code point C |
||||||
| 5132 | stores that in UTF-8 in C |
||||||
| 5133 | that the buffer pointed to by C |
||||||
| 5134 | bytes since the foldcase version may be longer than the original character. | ||||||
| 5135 | |||||||
| 5136 | The first code point of the foldcased version is returned | ||||||
| 5137 | (but note, as explained just above, that there may be more.) | ||||||
| 5138 | |||||||
| 5139 | UV toFOLD_uni(UV cp, U8* s, STRLEN* lenp)'},'toFOLD_utf8' => {'name' => 'toFOLD_utf8','text' => 'Converts the UTF-8 encoded character at C to its foldcase version, and |
||||||
| 5140 | stores that in UTF-8 in C |
||||||
| 5141 | that the buffer pointed to by C |
||||||
| 5142 | bytes since the foldcase version may be longer than the original character. | ||||||
| 5143 | |||||||
| 5144 | The first code point of the foldcased version is returned | ||||||
| 5145 | (but note, as explained just above, that there may be more.) | ||||||
| 5146 | |||||||
| 5147 | The input character at C is assumed to be well-formed. |
||||||
| 5148 | |||||||
| 5149 | UV toFOLD_utf8(U8* p, U8* s, STRLEN* lenp)'},'toLOWER' => {'name' => 'toLOWER','text' => 'Converts the specified character to lowercase. If the input is anything but an | ||||||
| 5150 | ASCII uppercase character, that input character itself is returned. Variant | ||||||
| 5151 | C |
||||||
| 5152 | |||||||
| 5153 | U8 toLOWER(U8 ch)'},'toLOWER_L1' => {'name' => 'toLOWER_L1','text' => 'Converts the specified Latin1 character to lowercase. The results are undefined if | ||||||
| 5154 | the input doesn\'t fit in a byte. | ||||||
| 5155 | |||||||
| 5156 | U8 toLOWER_L1(U8 ch)'},'toLOWER_LC' => {'name' => 'toLOWER_LC','text' => 'Converts the specified character to lowercase using the current locale\'s rules, | ||||||
| 5157 | if possible; otherwise returns the input character itself. | ||||||
| 5158 | |||||||
| 5159 | U8 toLOWER_LC(U8 ch)'},'toLOWER_uni' => {'name' => 'toLOWER_uni','text' => 'Converts the Unicode code point C |
||||||
| 5160 | stores that in UTF-8 in C |
||||||
| 5161 | that the buffer pointed to by C |
||||||
| 5162 | bytes since the lowercase version may be longer than the original character. | ||||||
| 5163 | |||||||
| 5164 | The first code point of the lowercased version is returned | ||||||
| 5165 | (but note, as explained just above, that there may be more.) | ||||||
| 5166 | |||||||
| 5167 | UV toLOWER_uni(UV cp, U8* s, STRLEN* lenp)'},'toLOWER_utf8' => {'name' => 'toLOWER_utf8','text' => 'Converts the UTF-8 encoded character at C to its lowercase version, and |
||||||
| 5168 | stores that in UTF-8 in C |
||||||
| 5169 | that the buffer pointed to by C |
||||||
| 5170 | bytes since the lowercase version may be longer than the original character. | ||||||
| 5171 | |||||||
| 5172 | The first code point of the lowercased version is returned | ||||||
| 5173 | (but note, as explained just above, that there may be more.) | ||||||
| 5174 | |||||||
| 5175 | The input character at C is assumed to be well-formed. |
||||||
| 5176 | |||||||
| 5177 | UV toLOWER_utf8(U8* p, U8* s, STRLEN* lenp)'},'toTITLE' => {'name' => 'toTITLE','text' => 'Converts the specified character to titlecase. If the input is anything but an | ||||||
| 5178 | ASCII lowercase character, that input character itself is returned. Variant | ||||||
| 5179 | C |
||||||
| 5180 | as the full generality of L is needed there. Titlecase is not a | ||||||
| 5181 | concept used in locale handling, so there is no functionality for that.) | ||||||
| 5182 | |||||||
| 5183 | U8 toTITLE(U8 ch)'},'toTITLE_uni' => {'name' => 'toTITLE_uni','text' => 'Converts the Unicode code point C |
||||||
| 5184 | stores that in UTF-8 in C |
||||||
| 5185 | that the buffer pointed to by C |
||||||
| 5186 | bytes since the titlecase version may be longer than the original character. | ||||||
| 5187 | |||||||
| 5188 | The first code point of the titlecased version is returned | ||||||
| 5189 | (but note, as explained just above, that there may be more.) | ||||||
| 5190 | |||||||
| 5191 | UV toTITLE_uni(UV cp, U8* s, STRLEN* lenp)'},'toTITLE_utf8' => {'name' => 'toTITLE_utf8','text' => 'Converts the UTF-8 encoded character at C to its titlecase version, and |
||||||
| 5192 | stores that in UTF-8 in C |
||||||
| 5193 | that the buffer pointed to by C |
||||||
| 5194 | bytes since the titlecase version may be longer than the original character. | ||||||
| 5195 | |||||||
| 5196 | The first code point of the titlecased version is returned | ||||||
| 5197 | (but note, as explained just above, that there may be more.) | ||||||
| 5198 | |||||||
| 5199 | The input character at C is assumed to be well-formed. |
||||||
| 5200 | |||||||
| 5201 | UV toTITLE_utf8(U8* p, U8* s, STRLEN* lenp)'},'toUPPER' => {'name' => 'toUPPER','text' => 'Converts the specified character to uppercase. If the input is anything but an | ||||||
| 5202 | ASCII lowercase character, that input character itself is returned. Variant | ||||||
| 5203 | C |
||||||
| 5204 | |||||||
| 5205 | U8 toUPPER(U8 ch)'},'toUPPER_uni' => {'name' => 'toUPPER_uni','text' => 'Converts the Unicode code point C |
||||||
| 5206 | stores that in UTF-8 in C |
||||||
| 5207 | that the buffer pointed to by C |
||||||
| 5208 | bytes since the uppercase version may be longer than the original character. | ||||||
| 5209 | |||||||
| 5210 | The first code point of the uppercased version is returned | ||||||
| 5211 | (but note, as explained just above, that there may be more.) | ||||||
| 5212 | |||||||
| 5213 | UV toUPPER_uni(UV cp, U8* s, STRLEN* lenp)'},'toUPPER_utf8' => {'name' => 'toUPPER_utf8','text' => 'Converts the UTF-8 encoded character at C to its uppercase version, and |
||||||
| 5214 | stores that in UTF-8 in C |
||||||
| 5215 | that the buffer pointed to by C |
||||||
| 5216 | bytes since the uppercase version may be longer than the original character. | ||||||
| 5217 | |||||||
| 5218 | The first code point of the uppercased version is returned | ||||||
| 5219 | (but note, as explained just above, that there may be more.) | ||||||
| 5220 | |||||||
| 5221 | The input character at C is assumed to be well-formed. |
||||||
| 5222 | |||||||
| 5223 | UV toUPPER_utf8(U8* p, U8* s, STRLEN* lenp)'},'to_utf8_case' => {'name' => 'to_utf8_case','text' => 'C contains the pointer to the UTF-8 string encoding |
||||||
| 5224 | the character that is being converted. This routine assumes that the character | ||||||
| 5225 | at C is well-formed. |
||||||
| 5226 | |||||||
| 5227 | C |
||||||
| 5228 | conversion result to. C |
||||||
| 5229 | of the result. | ||||||
| 5230 | |||||||
| 5231 | C |
||||||
| 5232 | |||||||
| 5233 | Both the special and normal mappings are stored in F |
||||||
| 5234 | and loaded by SWASHNEW, using F |
||||||
| 5235 | but not always, a multicharacter mapping), is tried first. | ||||||
| 5236 | |||||||
| 5237 | C |
||||||
| 5238 | any special mappings; C<""> means to use the special mappings. Values other | ||||||
| 5239 | than these two are treated as the name of the hash containing the special | ||||||
| 5240 | mappings, like C<"utf8::ToSpecLower">. | ||||||
| 5241 | |||||||
| 5242 | C |
||||||
| 5243 | %utf8::ToLower. | ||||||
| 5244 | |||||||
| 5245 | UV to_utf8_case(const U8 *p, U8* ustrp, | ||||||
| 5246 | STRLEN *lenp, SV **swashp, | ||||||
| 5247 | const char *normal, | ||||||
| 5248 | const char *special)'},'to_utf8_fold' => {'name' => 'to_utf8_fold','text' => 'Instead use L. | ||||||
| 5249 | |||||||
| 5250 | UV to_utf8_fold(const U8 *p, U8* ustrp, | ||||||
| 5251 | STRLEN *lenp)'},'to_utf8_lower' => {'name' => 'to_utf8_lower','text' => 'Instead use L. | ||||||
| 5252 | |||||||
| 5253 | UV to_utf8_lower(const U8 *p, U8* ustrp, | ||||||
| 5254 | STRLEN *lenp)'},'to_utf8_title' => {'name' => 'to_utf8_title','text' => 'Instead use L. | ||||||
| 5255 | |||||||
| 5256 | UV to_utf8_title(const U8 *p, U8* ustrp, | ||||||
| 5257 | STRLEN *lenp)'},'to_utf8_upper' => {'name' => 'to_utf8_upper','text' => 'Instead use L. | ||||||
| 5258 | |||||||
| 5259 | UV to_utf8_upper(const U8 *p, U8* ustrp, | ||||||
| 5260 | STRLEN *lenp)'},'unlnk' => {'name' => 'unlnk','text' => ''},'unpack_str' => {'name' => 'unpack_str','text' => 'The engine implementing unpack() Perl function. Note: parameters strbeg, | ||||||
| 5261 | new_s and ocnt are not used. This call should not be used, use | ||||||
| 5262 | unpackstring instead. | ||||||
| 5263 | |||||||
| 5264 | I32 unpack_str(const char *pat, const char *patend, | ||||||
| 5265 | const char *s, const char *strbeg, | ||||||
| 5266 | const char *strend, char **new_s, | ||||||
| 5267 | I32 ocnt, U32 flags)'},'unpackstring' => {'name' => 'unpackstring','text' => 'The engine implementing the unpack() Perl function. | ||||||
| 5268 | |||||||
| 5269 | Using the template pat..patend, this function unpacks the string | ||||||
| 5270 | s..strend into a number of mortal SVs, which it pushes onto the perl | ||||||
| 5271 | argument (@_) stack (so you will need to issue a C |
||||||
| 5272 | C |
||||||
| 5273 | pushed elements. | ||||||
| 5274 | |||||||
| 5275 | The strend and patend pointers should point to the byte following the last | ||||||
| 5276 | character of each string. | ||||||
| 5277 | |||||||
| 5278 | Although this function returns its values on the perl argument stack, it | ||||||
| 5279 | doesn\'t take any parameters from that stack (and thus in particular | ||||||
| 5280 | there\'s no need to do a PUSHMARK before calling it, unlike L for | ||||||
| 5281 | example). | ||||||
| 5282 | |||||||
| 5283 | I32 unpackstring(const char *pat, | ||||||
| 5284 | const char *patend, const char *s, | ||||||
| 5285 | const char *strend, U32 flags)'},'unsharepvn' => {'name' => 'unsharepvn','text' => ''},'upg_version' => {'name' => 'upg_version','text' => 'In-place upgrade of the supplied SV to a version object. | ||||||
| 5286 | |||||||
| 5287 | SV *sv = upg_version(SV *sv, bool qv); | ||||||
| 5288 | |||||||
| 5289 | Returns a pointer to the upgraded SV. Set the boolean qv if you want | ||||||
| 5290 | to force this SV to be interpreted as an "extended" version. | ||||||
| 5291 | |||||||
| 5292 | SV* upg_version(SV *ver, bool qv)'},'utf16_to_utf8' => {'name' => 'utf16_to_utf8','text' => ''},'utf16_to_utf8_reversed' => {'name' => 'utf16_to_utf8_reversed','text' => ''},'utf8_distance' => {'name' => 'utf8_distance','text' => 'Returns the number of UTF-8 characters between the UTF-8 pointers C | ||||||
| 5293 | and C. | ||||||
| 5294 | |||||||
| 5295 | WARNING: use only if you *know* that the pointers point inside the | ||||||
| 5296 | same UTF-8 buffer. | ||||||
| 5297 | |||||||
| 5298 | IV utf8_distance(const U8 *a, const U8 *b)'},'utf8_hop' => {'name' => 'utf8_hop','text' => 'Return the UTF-8 pointer C |
||||||
| 5299 | forward or backward. | ||||||
| 5300 | |||||||
| 5301 | WARNING: do not use the following unless you *know* C |
||||||
| 5302 | the UTF-8 data pointed to by C |
||||||
| 5303 | on the first byte of character or just after the last byte of a character. | ||||||
| 5304 | |||||||
| 5305 | U8* utf8_hop(const U8 *s, I32 off)'},'utf8_length' => {'name' => 'utf8_length','text' => 'Return the length of the UTF-8 char encoded string C |
||||||
| 5306 | Stops at C |
||||||
| 5307 | up past C |
||||||
| 5308 | |||||||
| 5309 | STRLEN utf8_length(const U8* s, const U8 *e)'},'utf8_to_bytes' => {'name' => 'utf8_to_bytes','text' => 'NOTE: this function is experimental and may change or be | ||||||
| 5310 | removed without notice. | ||||||
| 5311 | |||||||
| 5312 | |||||||
| 5313 | Converts a string C |
||||||
| 5314 | Unlike L, this over-writes the original string, and | ||||||
| 5315 | updates C |
||||||
| 5316 | Returns zero on failure, setting C |
||||||
| 5317 | |||||||
| 5318 | If you need a copy of the string, see L. | ||||||
| 5319 | |||||||
| 5320 | U8* utf8_to_bytes(U8 *s, STRLEN *len)'},'utf8_to_uvchr' => {'name' => 'utf8_to_uvchr','text' => 'DEPRECATED! It is planned to remove this function from a | ||||||
| 5321 | future release of Perl. Do not use it for new code; remove it from | ||||||
| 5322 | existing code. | ||||||
| 5323 | |||||||
| 5324 | |||||||
| 5325 | Returns the native code point of the first character in the string C |
||||||
| 5326 | which is assumed to be in UTF-8 encoding; C |
||||||
| 5327 | length, in bytes, of that character. | ||||||
| 5328 | |||||||
| 5329 | Some, but not all, UTF-8 malformations are detected, and in fact, some | ||||||
| 5330 | malformed input could cause reading beyond the end of the input buffer, which | ||||||
| 5331 | is why this function is deprecated. Use L instead. | ||||||
| 5332 | |||||||
| 5333 | If C |
||||||
| 5334 | enabled, zero is returned and C<*retlen> is set (if C |
||||||
| 5335 | NULL) to -1. If those warnings are off, the computed value if well-defined (or | ||||||
| 5336 | the Unicode REPLACEMENT CHARACTER, if not) is silently returned, and C<*retlen> | ||||||
| 5337 | is set (if C |
||||||
| 5338 | next possible position in C |
||||||
| 5339 | See L for details on when the REPLACEMENT CHARACTER is returned. | ||||||
| 5340 | |||||||
| 5341 | UV utf8_to_uvchr(const U8 *s, STRLEN *retlen)'},'utf8_to_uvchr_buf' => {'name' => 'utf8_to_uvchr_buf','text' => 'Returns the native code point of the first character in the string C |
||||||
| 5342 | is assumed to be in UTF-8 encoding; C |
||||||
| 5343 | C<*retlen> will be set to the length, in bytes, of that character. | ||||||
| 5344 | |||||||
| 5345 | If C |
||||||
| 5346 | enabled, zero is returned and C<*retlen> is set (if C |
||||||
| 5347 | NULL) to -1. If those warnings are off, the computed value, if well-defined | ||||||
| 5348 | (or the Unicode REPLACEMENT CHARACTER if not), is silently returned, and | ||||||
| 5349 | C<*retlen> is set (if C |
||||||
| 5350 | the next possible position in C |
||||||
| 5351 | See L for details on when the REPLACEMENT CHARACTER is | ||||||
| 5352 | returned. | ||||||
| 5353 | |||||||
| 5354 | UV utf8_to_uvchr_buf(const U8 *s, const U8 *send, | ||||||
| 5355 | STRLEN *retlen)'},'utf8_to_uvuni' => {'name' => 'utf8_to_uvuni','text' => 'DEPRECATED! It is planned to remove this function from a | ||||||
| 5356 | future release of Perl. Do not use it for new code; remove it from | ||||||
| 5357 | existing code. | ||||||
| 5358 | |||||||
| 5359 | |||||||
| 5360 | Returns the Unicode code point of the first character in the string C |
||||||
| 5361 | which is assumed to be in UTF-8 encoding; C |
||||||
| 5362 | length, in bytes, of that character. | ||||||
| 5363 | |||||||
| 5364 | Some, but not all, UTF-8 malformations are detected, and in fact, some | ||||||
| 5365 | malformed input could cause reading beyond the end of the input buffer, which | ||||||
| 5366 | is one reason why this function is deprecated. The other is that only in | ||||||
| 5367 | extremely limited circumstances should the Unicode versus native code point be | ||||||
| 5368 | of any interest to you. See L for alternatives. | ||||||
| 5369 | |||||||
| 5370 | If C |
||||||
| 5371 | enabled, zero is returned and C<*retlen> is set (if C |
||||||
| 5372 | NULL) to -1. If those warnings are off, the computed value if well-defined (or | ||||||
| 5373 | the Unicode REPLACEMENT CHARACTER, if not) is silently returned, and C<*retlen> | ||||||
| 5374 | is set (if C |
||||||
| 5375 | next possible position in C |
||||||
| 5376 | See L for details on when the REPLACEMENT CHARACTER is returned. | ||||||
| 5377 | |||||||
| 5378 | UV utf8_to_uvuni(const U8 *s, STRLEN *retlen)'},'utf8_to_uvuni_buf' => {'name' => 'utf8_to_uvuni_buf','text' => 'DEPRECATED! It is planned to remove this function from a | ||||||
| 5379 | future release of Perl. Do not use it for new code; remove it from | ||||||
| 5380 | existing code. | ||||||
| 5381 | |||||||
| 5382 | |||||||
| 5383 | Only in very rare circumstances should code need to be dealing in Unicode | ||||||
| 5384 | (as opposed to native) code points. In those few cases, use | ||||||
| 5385 | C |
||||||
| 5386 | |||||||
| 5387 | Returns the Unicode (not-native) code point of the first character in the | ||||||
| 5388 | string C |
||||||
| 5389 | is assumed to be in UTF-8 encoding; C |
||||||
| 5390 | C |
||||||
| 5391 | |||||||
| 5392 | If C |
||||||
| 5393 | enabled, zero is returned and C<*retlen> is set (if C |
||||||
| 5394 | NULL) to -1. If those warnings are off, the computed value if well-defined (or | ||||||
| 5395 | the Unicode REPLACEMENT CHARACTER, if not) is silently returned, and C<*retlen> | ||||||
| 5396 | is set (if C |
||||||
| 5397 | next possible position in C |
||||||
| 5398 | See L for details on when the REPLACEMENT CHARACTER is returned. | ||||||
| 5399 | |||||||
| 5400 | UV utf8_to_uvuni_buf(const U8 *s, const U8 *send, | ||||||
| 5401 | STRLEN *retlen)'},'utf8n_to_uvchr' => {'name' => 'utf8n_to_uvchr','text' => 'THIS FUNCTION SHOULD BE USED IN ONLY VERY SPECIALIZED CIRCUMSTANCES. | ||||||
| 5402 | Most code should use L() rather than call this directly. | ||||||
| 5403 | |||||||
| 5404 | Bottom level UTF-8 decode routine. | ||||||
| 5405 | Returns the native code point value of the first character in the string C |
||||||
| 5406 | which is assumed to be in UTF-8 (or UTF-EBCDIC) encoding, and no longer than | ||||||
| 5407 | C |
||||||
| 5408 | the length, in bytes, of that character. | ||||||
| 5409 | |||||||
| 5410 | The value of C |
||||||
| 5411 | well-formed UTF-8 character. If C |
||||||
| 5412 | zero is returned and C<*retlen> is set so that (S |
||||||
| 5413 | next possible position in C |
||||||
| 5414 | Also, if UTF-8 warnings haven\'t been lexically disabled, a warning is raised. | ||||||
| 5415 | |||||||
| 5416 | Various ALLOW flags can be set in C |
||||||
| 5417 | individual types of malformations, such as the sequence being overlong (that | ||||||
| 5418 | is, when there is a shorter sequence that can express the same code point; | ||||||
| 5419 | overlong sequences are expressly forbidden in the UTF-8 standard due to | ||||||
| 5420 | potential security issues). Another malformation example is the first byte of | ||||||
| 5421 | a character not being a legal first byte. See F |
||||||
| 5422 | flags. For allowed 0 length strings, this function returns 0; for allowed | ||||||
| 5423 | overlong sequences, the computed code point is returned; for all other allowed | ||||||
| 5424 | malformations, the Unicode REPLACEMENT CHARACTER is returned, as these have no | ||||||
| 5425 | determinable reasonable value. | ||||||
| 5426 | |||||||
| 5427 | The UTF8_CHECK_ONLY flag overrides the behavior when a non-allowed (by other | ||||||
| 5428 | flags) malformation is found. If this flag is set, the routine assumes that | ||||||
| 5429 | the caller will raise a warning, and this function will silently just set | ||||||
| 5430 | C |
||||||
| 5431 | |||||||
| 5432 | Note that this API requires disambiguation between successful decoding a C |
||||||
| 5433 | character, and an error return (unless the UTF8_CHECK_ONLY flag is set), as | ||||||
| 5434 | in both cases, 0 is returned. To disambiguate, upon a zero return, see if the | ||||||
| 5435 | first byte of C |
||||||
| 5436 | input had an error. | ||||||
| 5437 | |||||||
| 5438 | Certain code points are considered problematic. These are Unicode surrogates, | ||||||
| 5439 | Unicode non-characters, and code points above the Unicode maximum of 0x10FFFF. | ||||||
| 5440 | By default these are considered regular code points, but certain situations | ||||||
| 5441 | warrant special handling for them. If C |
||||||
| 5442 | UTF8_DISALLOW_ILLEGAL_INTERCHANGE, all three classes are treated as | ||||||
| 5443 | malformations and handled as such. The flags UTF8_DISALLOW_SURROGATE, | ||||||
| 5444 | UTF8_DISALLOW_NONCHAR, and UTF8_DISALLOW_SUPER (meaning above the legal Unicode | ||||||
| 5445 | maximum) can be set to disallow these categories individually. | ||||||
| 5446 | |||||||
| 5447 | The flags UTF8_WARN_ILLEGAL_INTERCHANGE, UTF8_WARN_SURROGATE, | ||||||
| 5448 | UTF8_WARN_NONCHAR, and UTF8_WARN_SUPER will cause warning messages to be raised | ||||||
| 5449 | for their respective categories, but otherwise the code points are considered | ||||||
| 5450 | valid (not malformations). To get a category to both be treated as a | ||||||
| 5451 | malformation and raise a warning, specify both the WARN and DISALLOW flags. | ||||||
| 5452 | (But note that warnings are not raised if lexically disabled nor if | ||||||
| 5453 | UTF8_CHECK_ONLY is also specified.) | ||||||
| 5454 | |||||||
| 5455 | Very large code points (above 0x7FFF_FFFF) are considered more problematic than | ||||||
| 5456 | the others that are above the Unicode legal maximum. There are several | ||||||
| 5457 | reasons: they requre at least 32 bits to represent them on ASCII platforms, are | ||||||
| 5458 | not representable at all on EBCDIC platforms, and the original UTF-8 | ||||||
| 5459 | specification never went above this number (the current 0x10FFFF limit was | ||||||
| 5460 | imposed later). (The smaller ones, those that fit into 32 bits, are | ||||||
| 5461 | representable by a UV on ASCII platforms, but not by an IV, which means that | ||||||
| 5462 | the number of operations that can be performed on them is quite restricted.) | ||||||
| 5463 | The UTF-8 encoding on ASCII platforms for these large code points begins with a | ||||||
| 5464 | byte containing 0xFE or 0xFF. The UTF8_DISALLOW_FE_FF flag will cause them to | ||||||
| 5465 | be treated as malformations, while allowing smaller above-Unicode code points. | ||||||
| 5466 | (Of course UTF8_DISALLOW_SUPER will treat all above-Unicode code points, | ||||||
| 5467 | including these, as malformations.) | ||||||
| 5468 | Similarly, UTF8_WARN_FE_FF acts just like | ||||||
| 5469 | the other WARN flags, but applies just to these code points. | ||||||
| 5470 | |||||||
| 5471 | All other code points corresponding to Unicode characters, including private | ||||||
| 5472 | use and those yet to be assigned, are never considered malformed and never | ||||||
| 5473 | warn. | ||||||
| 5474 | |||||||
| 5475 | UV utf8n_to_uvchr(const U8 *s, STRLEN curlen, | ||||||
| 5476 | STRLEN *retlen, U32 flags)'},'utf8n_to_uvuni' => {'name' => 'utf8n_to_uvuni','text' => 'Instead use L, or rarely, L. | ||||||
| 5477 | |||||||
| 5478 | This function was useful for code that wanted to handle both EBCDIC and | ||||||
| 5479 | ASCII platforms with Unicode properties, but starting in Perl v5.20, the | ||||||
| 5480 | distinctions between the platforms have mostly been made invisible to most | ||||||
| 5481 | code, so this function is quite unlikely to be what you want. If you do need | ||||||
| 5482 | this precise functionality, use instead | ||||||
| 5483 | C |
||||||
| 5484 | or C |
||||||
| 5485 | |||||||
| 5486 | UV utf8n_to_uvuni(const U8 *s, STRLEN curlen, | ||||||
| 5487 | STRLEN *retlen, U32 flags)'},'uvchr_to_utf8' => {'name' => 'uvchr_to_utf8','text' => 'Adds the UTF-8 representation of the native code point C |
||||||
| 5488 | of the string C |
||||||
| 5489 | C |
||||||
| 5490 | the byte after the end of the new character. In other words, | ||||||
| 5491 | |||||||
| 5492 | d = uvchr_to_utf8(d, uv); | ||||||
| 5493 | |||||||
| 5494 | is the recommended wide native character-aware way of saying | ||||||
| 5495 | |||||||
| 5496 | *(d++) = uv; | ||||||
| 5497 | |||||||
| 5498 | This function accepts any UV as input. To forbid or warn on non-Unicode code | ||||||
| 5499 | points, or those that may be problematic, see L. | ||||||
| 5500 | |||||||
| 5501 | U8* uvchr_to_utf8(U8 *d, UV uv)'},'uvchr_to_utf8_flags' => {'name' => 'uvchr_to_utf8_flags','text' => 'Adds the UTF-8 representation of the native code point C |
||||||
| 5502 | of the string C |
||||||
| 5503 | C |
||||||
| 5504 | the byte after the end of the new character. In other words, | ||||||
| 5505 | |||||||
| 5506 | d = uvchr_to_utf8_flags(d, uv, flags); | ||||||
| 5507 | |||||||
| 5508 | or, in most cases, | ||||||
| 5509 | |||||||
| 5510 | d = uvchr_to_utf8_flags(d, uv, 0); | ||||||
| 5511 | |||||||
| 5512 | This is the Unicode-aware way of saying | ||||||
| 5513 | |||||||
| 5514 | *(d++) = uv; | ||||||
| 5515 | |||||||
| 5516 | This function will convert to UTF-8 (and not warn) even code points that aren\'t | ||||||
| 5517 | legal Unicode or are problematic, unless C |
||||||
| 5518 | following flags: | ||||||
| 5519 | |||||||
| 5520 | If C |
||||||
| 5521 | the function will raise a warning, provided UTF8 warnings are enabled. If instead | ||||||
| 5522 | UNICODE_DISALLOW_SURROGATE is set, the function will fail and return NULL. | ||||||
| 5523 | If both flags are set, the function will both warn and return NULL. | ||||||
| 5524 | |||||||
| 5525 | The UNICODE_WARN_NONCHAR and UNICODE_DISALLOW_NONCHAR flags | ||||||
| 5526 | affect how the function handles a Unicode non-character. And likewise, the | ||||||
| 5527 | UNICODE_WARN_SUPER and UNICODE_DISALLOW_SUPER flags affect the handling of | ||||||
| 5528 | code points that are | ||||||
| 5529 | above the Unicode maximum of 0x10FFFF. Code points above 0x7FFF_FFFF (which are | ||||||
| 5530 | even less portable) can be warned and/or disallowed even if other above-Unicode | ||||||
| 5531 | code points are accepted, by the UNICODE_WARN_FE_FF and UNICODE_DISALLOW_FE_FF | ||||||
| 5532 | flags. | ||||||
| 5533 | |||||||
| 5534 | And finally, the flag UNICODE_WARN_ILLEGAL_INTERCHANGE selects all four of the | ||||||
| 5535 | above WARN flags; and UNICODE_DISALLOW_ILLEGAL_INTERCHANGE selects all four | ||||||
| 5536 | DISALLOW flags. | ||||||
| 5537 | |||||||
| 5538 | U8* uvchr_to_utf8_flags(U8 *d, UV uv, UV flags)'},'uvoffuni_to_utf8_flags' => {'name' => 'uvoffuni_to_utf8_flags','text' => 'THIS FUNCTION SHOULD BE USED IN ONLY VERY SPECIALIZED CIRCUMSTANCES. | ||||||
| 5539 | Instead, B |
||||||
| 5540 | L>. | ||||||
| 5541 | |||||||
| 5542 | This function is like them, but the input is a strict Unicode | ||||||
| 5543 | (as opposed to native) code point. Only in very rare circumstances should code | ||||||
| 5544 | not be using the native code point. | ||||||
| 5545 | |||||||
| 5546 | For details, see the description for L>. | ||||||
| 5547 | |||||||
| 5548 | U8* uvoffuni_to_utf8_flags(U8 *d, UV uv, UV flags)'},'uvuni_to_utf8' => {'name' => 'uvuni_to_utf8','text' => ''},'uvuni_to_utf8_flags' => {'name' => 'uvuni_to_utf8_flags','text' => 'Instead you almost certainly want to use L or | ||||||
| 5549 | L>. | ||||||
| 5550 | |||||||
| 5551 | This function is a deprecated synonym for L, | ||||||
| 5552 | which itself, while not deprecated, should be used only in isolated | ||||||
| 5553 | circumstances. These functions were useful for code that wanted to handle | ||||||
| 5554 | both EBCDIC and ASCII platforms with Unicode properties, but starting in Perl | ||||||
| 5555 | v5.20, the distinctions between the platforms have mostly been made invisible | ||||||
| 5556 | to most code, so this function is quite unlikely to be what you want. | ||||||
| 5557 | |||||||
| 5558 | U8* uvuni_to_utf8_flags(U8 *d, UV uv, UV flags)'},'vcmp' => {'name' => 'vcmp','text' => 'Version object aware cmp. Both operands must already have been | ||||||
| 5559 | converted into version objects. | ||||||
| 5560 | |||||||
| 5561 | int vcmp(SV *lhv, SV *rhv)'},'vcroak' => {'name' => 'vcroak','text' => 'This is an XS interface to Perl\'s C |
||||||
| 5562 | |||||||
| 5563 | C |
||||||
| 5564 | argument list. These are used to generate a string message. If the | ||||||
| 5565 | message does not end with a newline, then it will be extended with | ||||||
| 5566 | some indication of the current location in the code, as described for | ||||||
| 5567 | L. | ||||||
| 5568 | |||||||
| 5569 | The error message will be used as an exception, by default | ||||||
| 5570 | returning control to the nearest enclosing C |
||||||
| 5571 | modification by a C<$SIG{__DIE__}> handler. In any case, the C |
||||||
| 5572 | function never returns normally. | ||||||
| 5573 | |||||||
| 5574 | For historical reasons, if C |
||||||
| 5575 | (C<$@>) will be used as an error message or object instead of building an | ||||||
| 5576 | error message from arguments. If you want to throw a non-string object, | ||||||
| 5577 | or build an error message in an SV yourself, it is preferable to use | ||||||
| 5578 | the L function, which does not involve clobbering C |
||||||
| 5579 | |||||||
| 5580 | void vcroak(const char *pat, va_list *args)'},'vdeb' => {'name' => 'vdeb','text' => ''},'vform' => {'name' => 'vform','text' => ''},'vload_module' => {'name' => 'vload_module','text' => ''},'vmess' => {'name' => 'vmess','text' => 'C |
||||||
| 5581 | argument list. These are used to generate a string message. If the | ||||||
| 5582 | message does not end with a newline, then it will be extended with | ||||||
| 5583 | some indication of the current location in the code, as described for | ||||||
| 5584 | L. | ||||||
| 5585 | |||||||
| 5586 | Normally, the resulting message is returned in a new mortal SV. | ||||||
| 5587 | During global destruction a single SV may be shared between uses of | ||||||
| 5588 | this function. | ||||||
| 5589 | |||||||
| 5590 | SV * vmess(const char *pat, va_list *args)'},'vnewSVpvf' => {'name' => 'vnewSVpvf','text' => ''},'vnormal' => {'name' => 'vnormal','text' => 'Accepts a version object and returns the normalized string | ||||||
| 5591 | representation. Call like: | ||||||
| 5592 | |||||||
| 5593 | sv = vnormal(rv); | ||||||
| 5594 | |||||||
| 5595 | NOTE: you can pass either the object directly or the SV | ||||||
| 5596 | contained within the RV. | ||||||
| 5597 | |||||||
| 5598 | The SV returned has a refcount of 1. | ||||||
| 5599 | |||||||
| 5600 | SV* vnormal(SV *vs)'},'vnumify' => {'name' => 'vnumify','text' => 'Accepts a version object and returns the normalized floating | ||||||
| 5601 | point representation. Call like: | ||||||
| 5602 | |||||||
| 5603 | sv = vnumify(rv); | ||||||
| 5604 | |||||||
| 5605 | NOTE: you can pass either the object directly or the SV | ||||||
| 5606 | contained within the RV. | ||||||
| 5607 | |||||||
| 5608 | The SV returned has a refcount of 1. | ||||||
| 5609 | |||||||
| 5610 | SV* vnumify(SV *vs)'},'vstringify' => {'name' => 'vstringify','text' => 'In order to maintain maximum compatibility with earlier versions | ||||||
| 5611 | of Perl, this function will return either the floating point | ||||||
| 5612 | notation or the multiple dotted notation, depending on whether | ||||||
| 5613 | the original version contained 1 or more dots, respectively. | ||||||
| 5614 | |||||||
| 5615 | The SV returned has a refcount of 1. | ||||||
| 5616 | |||||||
| 5617 | SV* vstringify(SV *vs)'},'vverify' => {'name' => 'vverify','text' => 'Validates that the SV contains valid internal structure for a version object. | ||||||
| 5618 | It may be passed either the version object (RV) or the hash itself (HV). If | ||||||
| 5619 | the structure is valid, it returns the HV. If the structure is invalid, | ||||||
| 5620 | it returns NULL. | ||||||
| 5621 | |||||||
| 5622 | SV *hv = vverify(sv); | ||||||
| 5623 | |||||||
| 5624 | Note that it only confirms the bare minimum structure (so as not to get | ||||||
| 5625 | confused by derived classes which may contain additional hash entries): | ||||||
| 5626 | |||||||
| 5627 | SV* vverify(SV *vs)'},'vwarn' => {'name' => 'vwarn','text' => 'This is an XS interface to Perl\'s C |
||||||
| 5628 | |||||||
| 5629 | C |
||||||
| 5630 | argument list. These are used to generate a string message. If the | ||||||
| 5631 | message does not end with a newline, then it will be extended with | ||||||
| 5632 | some indication of the current location in the code, as described for | ||||||
| 5633 | L. | ||||||
| 5634 | |||||||
| 5635 | The error message or object will by default be written to standard error, | ||||||
| 5636 | but this is subject to modification by a C<$SIG{__WARN__}> handler. | ||||||
| 5637 | |||||||
| 5638 | Unlike with L, C |
||||||
| 5639 | |||||||
| 5640 | void vwarn(const char *pat, va_list *args)'},'vwarner' => {'name' => 'vwarner','text' => ''},'warn' => {'name' => 'warn','text' => 'This is an XS interface to Perl\'s C |
||||||
| 5641 | |||||||
| 5642 | Take a sprintf-style format pattern and argument list. These are used to | ||||||
| 5643 | generate a string message. If the message does not end with a newline, | ||||||
| 5644 | then it will be extended with some indication of the current location | ||||||
| 5645 | in the code, as described for L. | ||||||
| 5646 | |||||||
| 5647 | The error message or object will by default be written to standard error, | ||||||
| 5648 | but this is subject to modification by a C<$SIG{__WARN__}> handler. | ||||||
| 5649 | |||||||
| 5650 | Unlike with L, C |
||||||
| 5651 | |||||||
| 5652 | void warn(const char *pat, ...)'},'warn_nocontext' => {'name' => 'warn_nocontext','text' => ''},'warn_sv' => {'name' => 'warn_sv','text' => 'This is an XS interface to Perl\'s C |
||||||
| 5653 | |||||||
| 5654 | C |
||||||
| 5655 | will be used as-is. Otherwise it is used as a string, and if it does | ||||||
| 5656 | not end with a newline then it will be extended with some indication of | ||||||
| 5657 | the current location in the code, as described for L. | ||||||
| 5658 | |||||||
| 5659 | The error message or object will by default be written to standard error, | ||||||
| 5660 | but this is subject to modification by a C<$SIG{__WARN__}> handler. | ||||||
| 5661 | |||||||
| 5662 | To warn with a simple string message, the L function may be | ||||||
| 5663 | more convenient. | ||||||
| 5664 | |||||||
| 5665 | void warn_sv(SV *baseex)'},'warner' => {'name' => 'warner','text' => ''},'warner_nocontext' => {'name' => 'warner_nocontext','text' => ''},'whichsig' => {'name' => 'whichsig','text' => ''},'whichsig_pv' => {'name' => 'whichsig_pv','text' => ''},'whichsig_pvn' => {'name' => 'whichsig_pvn','text' => ''},'whichsig_sv' => {'name' => 'whichsig_sv','text' => ''},'wrap_op_checker' => {'name' => 'wrap_op_checker','text' => 'Puts a C function into the chain of check functions for a specified op | ||||||
| 5666 | type. This is the preferred way to manipulate the L array. | ||||||
| 5667 | I |
||||||
| 5668 | is a pointer to the C function that is to be added to that opcode\'s | ||||||
| 5669 | check chain, and I |
||||||
| 5670 | pointer to the next function in the chain will be stored. The value of | ||||||
| 5671 | I |
||||||
| 5672 | previously stored there is written to I<*old_checker_p>. | ||||||
| 5673 | |||||||
| 5674 | The function should be defined like this: | ||||||
| 5675 | |||||||
| 5676 | static OP *new_checker(pTHX_ OP *op) { ... } | ||||||
| 5677 | |||||||
| 5678 | It is intended to be called in this manner: | ||||||
| 5679 | |||||||
| 5680 | new_checker(aTHX_ op) | ||||||
| 5681 | |||||||
| 5682 | I |
||||||
| 5683 | |||||||
| 5684 | static Perl_check_t old_checker_p; | ||||||
| 5685 | |||||||
| 5686 | L is global to an entire process, and a module wishing to | ||||||
| 5687 | hook op checking may find itself invoked more than once per process, | ||||||
| 5688 | typically in different threads. To handle that situation, this function | ||||||
| 5689 | is idempotent. The location I<*old_checker_p> must initially (once | ||||||
| 5690 | per process) contain a null pointer. A C variable of static duration | ||||||
| 5691 | (declared at file scope, typically also marked C |
||||||
| 5692 | it internal linkage) will be implicitly initialised appropriately, | ||||||
| 5693 | if it does not have an explicit initialiser. This function will only | ||||||
| 5694 | actually modify the check chain if it finds I<*old_checker_p> to be null. | ||||||
| 5695 | This function is also thread safe on the small scale. It uses appropriate | ||||||
| 5696 | locking to avoid race conditions in accessing L. | ||||||
| 5697 | |||||||
| 5698 | When this function is called, the function referenced by I |
||||||
| 5699 | must be ready to be called, except for I<*old_checker_p> being unfilled. | ||||||
| 5700 | In a threading situation, I |
||||||
| 5701 | even before this function has returned. I<*old_checker_p> will always | ||||||
| 5702 | be appropriately set before I |
||||||
| 5703 | decides not to do anything special with an op that it is given (which | ||||||
| 5704 | is the usual case for most uses of op check hooking), it must chain the | ||||||
| 5705 | check function referenced by I<*old_checker_p>. | ||||||
| 5706 | |||||||
| 5707 | If you want to influence compilation of calls to a specific subroutine, | ||||||
| 5708 | then use L rather than hooking checking of all | ||||||
| 5709 | C |
||||||
| 5710 | |||||||
| 5711 | void wrap_op_checker(Optype opcode, | ||||||
| 5712 | Perl_check_t new_checker, | ||||||
| 5713 | Perl_check_t *old_checker_p)'}};}; | ||||||
| 5714 | |||||||
| 5715 | 1 | 56 | my $self = bless({ | ||||
| 5716 | 'index' => $VAR1, | ||||||
| 5717 | perl_version => '5.020002', | ||||||
| 5718 | } => $class); | ||||||
| 5719 | 1 | 481 | return $self; | ||||
| 5720 | } | ||||||
| 5721 | |||||||
| 5722 | 1; |