Regen headers.
[p5sagit/p5-mst-13.2.git] / pod / perlapi.pod
CommitLineData
954c1994 1=head1 NAME
2
3perlapi - autogenerated documentation for the perl public API
4
5=head1 DESCRIPTION
6
7This file contains the documentation of the perl public API generated by
8embed.pl, specifically a listing of functions, macros, flags, and variables
9that may be used by extension writers. The interfaces of any functions that
10are not listed here are subject to change without notice. For this reason,
11blindly using functions listed in proto.h is to be avoided when writing
12extensions.
13
14Note that all Perl API global variables must be referenced with the C<PL_>
15prefix. Some macros are provided for compatibility with the older,
16unadorned names, but this support may be disabled in a future release.
17
18The listing is alphabetical, case insensitive.
19
20=over 8
21
22=item AvFILL
23
24Same as C<av_len()>. Deprecated, use C<av_len()> instead.
25
26 int AvFILL(AV* av)
27
21fff326 28=for hackers
29Found in file av.h
30
954c1994 31=item av_clear
32
33Clears an array, making it empty. Does not free the memory used by the
34array itself.
35
36 void av_clear(AV* ar)
37
21fff326 38=for hackers
39Found in file av.c
40
954c1994 41=item av_extend
42
43Pre-extend an array. The C<key> is the index to which the array should be
44extended.
45
46 void av_extend(AV* ar, I32 key)
47
21fff326 48=for hackers
49Found in file av.c
50
954c1994 51=item av_fetch
52
53Returns the SV at the specified index in the array. The C<key> is the
54index. If C<lval> is set then the fetch will be part of a store. Check
55that the return value is non-null before dereferencing it to a C<SV*>.
56
96f1132b 57See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for
58more information on how to use this function on tied arrays.
954c1994 59
60 SV** av_fetch(AV* ar, I32 key, I32 lval)
61
21fff326 62=for hackers
63Found in file av.c
64
954c1994 65=item av_len
66
67Returns the highest index in the array. Returns -1 if the array is
68empty.
69
70 I32 av_len(AV* ar)
71
21fff326 72=for hackers
73Found in file av.c
74
954c1994 75=item av_make
76
77Creates a new AV and populates it with a list of SVs. The SVs are copied
78into the array, so they may be freed after the call to av_make. The new AV
79will have a reference count of 1.
80
81 AV* av_make(I32 size, SV** svp)
82
21fff326 83=for hackers
84Found in file av.c
85
954c1994 86=item av_pop
87
88Pops an SV off the end of the array. Returns C<&PL_sv_undef> if the array
89is empty.
90
91 SV* av_pop(AV* ar)
92
21fff326 93=for hackers
94Found in file av.c
95
954c1994 96=item av_push
97
98Pushes an SV onto the end of the array. The array will grow automatically
99to accommodate the addition.
100
101 void av_push(AV* ar, SV* val)
102
21fff326 103=for hackers
104Found in file av.c
105
954c1994 106=item av_shift
107
108Shifts an SV off the beginning of the array.
109
110 SV* av_shift(AV* ar)
111
21fff326 112=for hackers
113Found in file av.c
114
954c1994 115=item av_store
116
117Stores an SV in an array. The array index is specified as C<key>. The
118return value will be NULL if the operation failed or if the value did not
119need to be actually stored within the array (as in the case of tied
120arrays). Otherwise it can be dereferenced to get the original C<SV*>. Note
121that the caller is responsible for suitably incrementing the reference
122count of C<val> before the call, and decrementing it if the function
123returned NULL.
124
96f1132b 125See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for
954c1994 126more information on how to use this function on tied arrays.
127
128 SV** av_store(AV* ar, I32 key, SV* val)
129
21fff326 130=for hackers
131Found in file av.c
132
954c1994 133=item av_undef
134
135Undefines the array. Frees the memory used by the array itself.
136
137 void av_undef(AV* ar)
138
21fff326 139=for hackers
140Found in file av.c
141
954c1994 142=item av_unshift
143
144Unshift the given number of C<undef> values onto the beginning of the
145array. The array will grow automatically to accommodate the addition. You
146must then use C<av_store> to assign values to these new elements.
147
148 void av_unshift(AV* ar, I32 num)
149
21fff326 150=for hackers
151Found in file av.c
152
954c1994 153=item call_argv
154
155Performs a callback to the specified Perl sub. See L<perlcall>.
156
157NOTE: the perl_ form of this function is deprecated.
158
159 I32 call_argv(const char* sub_name, I32 flags, char** argv)
160
21fff326 161=for hackers
162Found in file perl.c
163
954c1994 164=item call_method
165
166Performs a callback to the specified Perl method. The blessed object must
167be on the stack. See L<perlcall>.
168
169NOTE: the perl_ form of this function is deprecated.
170
171 I32 call_method(const char* methname, I32 flags)
172
21fff326 173=for hackers
174Found in file perl.c
175
954c1994 176=item call_pv
177
178Performs a callback to the specified Perl sub. See L<perlcall>.
179
180NOTE: the perl_ form of this function is deprecated.
181
182 I32 call_pv(const char* sub_name, I32 flags)
183
21fff326 184=for hackers
185Found in file perl.c
186
954c1994 187=item call_sv
188
189Performs a callback to the Perl sub whose name is in the SV. See
190L<perlcall>.
191
192NOTE: the perl_ form of this function is deprecated.
193
194 I32 call_sv(SV* sv, I32 flags)
195
21fff326 196=for hackers
197Found in file perl.c
198
954c1994 199=item CLASS
200
201Variable which is setup by C<xsubpp> to indicate the
202class name for a C++ XS constructor. This is always a C<char*>. See C<THIS>.
203
204 char* CLASS
205
21fff326 206=for hackers
207Found in file XSUB.h
208
954c1994 209=item Copy
210
211The XSUB-writer's interface to the C C<memcpy> function. The C<src> is the
212source, C<dest> is the destination, C<nitems> is the number of items, and C<type> is
213the type. May fail on overlapping copies. See also C<Move>.
214
215 void Copy(void* src, void* dest, int nitems, type)
216
21fff326 217=for hackers
218Found in file handy.h
219
954c1994 220=item croak
221
c9d5ac95 222This is the XSUB-writer's interface to Perl's C<die> function.
223Normally use this function the same way you use the C C<printf>
224function. See C<warn>.
225
226If you want to throw an exception object, assign the object to
227C<$@> and then pass C<Nullch> to croak():
228
229 errsv = get_sv("@", TRUE);
230 sv_setsv(errsv, exception_object);
231 croak(Nullch);
954c1994 232
233 void croak(const char* pat, ...)
234
21fff326 235=for hackers
236Found in file util.c
237
954c1994 238=item CvSTASH
239
240Returns the stash of the CV.
241
242 HV* CvSTASH(CV* cv)
243
21fff326 244=for hackers
245Found in file cv.h
246
954c1994 247=item dMARK
248
249Declare a stack marker variable, C<mark>, for the XSUB. See C<MARK> and
250C<dORIGMARK>.
251
252 dMARK;
253
21fff326 254=for hackers
255Found in file pp.h
256
954c1994 257=item dORIGMARK
258
259Saves the original stack mark for the XSUB. See C<ORIGMARK>.
260
261 dORIGMARK;
262
21fff326 263=for hackers
264Found in file pp.h
265
954c1994 266=item dSP
267
268Declares a local copy of perl's stack pointer for the XSUB, available via
269the C<SP> macro. See C<SP>.
270
271 dSP;
272
21fff326 273=for hackers
274Found in file pp.h
275
954c1994 276=item dXSARGS
277
278Sets up stack and mark pointers for an XSUB, calling dSP and dMARK. This
279is usually handled automatically by C<xsubpp>. Declares the C<items>
280variable to indicate the number of items on the stack.
281
282 dXSARGS;
283
21fff326 284=for hackers
285Found in file XSUB.h
286
954c1994 287=item dXSI32
288
289Sets up the C<ix> variable for an XSUB which has aliases. This is usually
290handled automatically by C<xsubpp>.
291
292 dXSI32;
293
21fff326 294=for hackers
295Found in file XSUB.h
296
954c1994 297=item ENTER
298
299Opening bracket on a callback. See C<LEAVE> and L<perlcall>.
300
301 ENTER;
302
21fff326 303=for hackers
304Found in file scope.h
305
954c1994 306=item eval_pv
307
308Tells Perl to C<eval> the given string and return an SV* result.
309
310NOTE: the perl_ form of this function is deprecated.
311
312 SV* eval_pv(const char* p, I32 croak_on_error)
313
21fff326 314=for hackers
315Found in file perl.c
316
954c1994 317=item eval_sv
318
319Tells Perl to C<eval> the string in the SV.
320
321NOTE: the perl_ form of this function is deprecated.
322
323 I32 eval_sv(SV* sv, I32 flags)
324
21fff326 325=for hackers
326Found in file perl.c
327
954c1994 328=item EXTEND
329
330Used to extend the argument stack for an XSUB's return values. Once
4375e838 331used, guarantees that there is room for at least C<nitems> to be pushed
954c1994 332onto the stack.
333
334 void EXTEND(SP, int nitems)
335
21fff326 336=for hackers
337Found in file pp.h
338
954c1994 339=item fbm_compile
340
341Analyses the string in order to make fast searches on it using fbm_instr()
342-- the Boyer-Moore algorithm.
343
344 void fbm_compile(SV* sv, U32 flags)
345
21fff326 346=for hackers
347Found in file util.c
348
954c1994 349=item fbm_instr
350
351Returns the location of the SV in the string delimited by C<str> and
352C<strend>. It returns C<Nullch> if the string can't be found. The C<sv>
353does not have to be fbm_compiled, but the search will not be as fast
354then.
355
356 char* fbm_instr(unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags)
357
21fff326 358=for hackers
359Found in file util.c
360
954c1994 361=item FREETMPS
362
363Closing bracket for temporaries on a callback. See C<SAVETMPS> and
364L<perlcall>.
365
366 FREETMPS;
367
21fff326 368=for hackers
369Found in file scope.h
370
954c1994 371=item get_av
372
373Returns the AV of the specified Perl array. If C<create> is set and the
374Perl variable does not exist then it will be created. If C<create> is not
375set and the variable does not exist then NULL is returned.
376
377NOTE: the perl_ form of this function is deprecated.
378
379 AV* get_av(const char* name, I32 create)
380
21fff326 381=for hackers
382Found in file perl.c
383
954c1994 384=item get_cv
385
386Returns the CV of the specified Perl subroutine. If C<create> is set and
387the Perl subroutine does not exist then it will be declared (which has the
388same effect as saying C<sub name;>). If C<create> is not set and the
389subroutine does not exist then NULL is returned.
390
391NOTE: the perl_ form of this function is deprecated.
392
393 CV* get_cv(const char* name, I32 create)
394
21fff326 395=for hackers
396Found in file perl.c
397
954c1994 398=item get_hv
399
400Returns the HV of the specified Perl hash. If C<create> is set and the
401Perl variable does not exist then it will be created. If C<create> is not
402set and the variable does not exist then NULL is returned.
403
404NOTE: the perl_ form of this function is deprecated.
405
406 HV* get_hv(const char* name, I32 create)
407
21fff326 408=for hackers
409Found in file perl.c
410
954c1994 411=item get_sv
412
413Returns the SV of the specified Perl scalar. If C<create> is set and the
414Perl variable does not exist then it will be created. If C<create> is not
415set and the variable does not exist then NULL is returned.
416
417NOTE: the perl_ form of this function is deprecated.
418
419 SV* get_sv(const char* name, I32 create)
420
21fff326 421=for hackers
422Found in file perl.c
423
954c1994 424=item GIMME
425
426A backward-compatible version of C<GIMME_V> which can only return
427C<G_SCALAR> or C<G_ARRAY>; in a void context, it returns C<G_SCALAR>.
428Deprecated. Use C<GIMME_V> instead.
429
430 U32 GIMME
431
21fff326 432=for hackers
433Found in file op.h
434
954c1994 435=item GIMME_V
436
437The XSUB-writer's equivalent to Perl's C<wantarray>. Returns C<G_VOID>,
438C<G_SCALAR> or C<G_ARRAY> for void, scalar or array context,
439respectively.
440
441 U32 GIMME_V
442
21fff326 443=for hackers
444Found in file op.h
445
954c1994 446=item GvSV
447
448Return the SV from the GV.
449
450 SV* GvSV(GV* gv)
451
21fff326 452=for hackers
453Found in file gv.h
454
954c1994 455=item gv_fetchmeth
456
457Returns the glob with the given C<name> and a defined subroutine or
458C<NULL>. The glob lives in the given C<stash>, or in the stashes
459accessible via @ISA and @UNIVERSAL.
460
461The argument C<level> should be either 0 or -1. If C<level==0>, as a
462side-effect creates a glob with the given C<name> in the given C<stash>
463which in the case of success contains an alias for the subroutine, and sets
464up caching info for this glob. Similarly for all the searched stashes.
465
466This function grants C<"SUPER"> token as a postfix of the stash name. The
467GV returned from C<gv_fetchmeth> may be a method cache entry, which is not
4929bf7b 468visible to Perl code. So when calling C<call_sv>, you should not use
954c1994 469the GV directly; instead, you should use the method's CV, which can be
470obtained from the GV with the C<GvCV> macro.
471
472 GV* gv_fetchmeth(HV* stash, const char* name, STRLEN len, I32 level)
473
21fff326 474=for hackers
475Found in file gv.c
476
954c1994 477=item gv_fetchmethod
478
6d0f518e 479See L<gv_fetchmethod_autoload>.
954c1994 480
481 GV* gv_fetchmethod(HV* stash, const char* name)
482
21fff326 483=for hackers
484Found in file gv.c
485
954c1994 486=item gv_fetchmethod_autoload
487
488Returns the glob which contains the subroutine to call to invoke the method
489on the C<stash>. In fact in the presence of autoloading this may be the
490glob for "AUTOLOAD". In this case the corresponding variable $AUTOLOAD is
491already setup.
492
493The third parameter of C<gv_fetchmethod_autoload> determines whether
494AUTOLOAD lookup is performed if the given method is not present: non-zero
495means yes, look for AUTOLOAD; zero means no, don't look for AUTOLOAD.
496Calling C<gv_fetchmethod> is equivalent to calling C<gv_fetchmethod_autoload>
497with a non-zero C<autoload> parameter.
498
499These functions grant C<"SUPER"> token as a prefix of the method name. Note
500that if you want to keep the returned glob for a long time, you need to
501check for it being "AUTOLOAD", since at the later time the call may load a
502different subroutine due to $AUTOLOAD changing its value. Use the glob
503created via a side effect to do this.
504
505These functions have the same side-effects and as C<gv_fetchmeth> with
506C<level==0>. C<name> should be writable if contains C<':'> or C<'
507''>. The warning against passing the GV returned by C<gv_fetchmeth> to
4929bf7b 508C<call_sv> apply equally to these functions.
954c1994 509
510 GV* gv_fetchmethod_autoload(HV* stash, const char* name, I32 autoload)
511
21fff326 512=for hackers
513Found in file gv.c
514
954c1994 515=item gv_stashpv
516
386d01d6 517Returns a pointer to the stash for a specified package. C<name> should
518be a valid UTF-8 string. If C<create> is set then the package will be
519created if it does not already exist. If C<create> is not set and the
520package does not exist then NULL is returned.
954c1994 521
522 HV* gv_stashpv(const char* name, I32 create)
523
21fff326 524=for hackers
525Found in file gv.c
526
954c1994 527=item gv_stashsv
528
386d01d6 529Returns a pointer to the stash for a specified package, which must be a
530valid UTF-8 string. See C<gv_stashpv>.
954c1994 531
532 HV* gv_stashsv(SV* sv, I32 create)
533
21fff326 534=for hackers
535Found in file gv.c
536
954c1994 537=item G_ARRAY
538
539Used to indicate array context. See C<GIMME_V>, C<GIMME> and
540L<perlcall>.
541
21fff326 542=for hackers
543Found in file cop.h
544
954c1994 545=item G_DISCARD
546
547Indicates that arguments returned from a callback should be discarded. See
548L<perlcall>.
549
21fff326 550=for hackers
551Found in file cop.h
552
954c1994 553=item G_EVAL
554
555Used to force a Perl C<eval> wrapper around a callback. See
556L<perlcall>.
557
21fff326 558=for hackers
559Found in file cop.h
560
954c1994 561=item G_NOARGS
562
563Indicates that no arguments are being sent to a callback. See
564L<perlcall>.
565
21fff326 566=for hackers
567Found in file cop.h
568
954c1994 569=item G_SCALAR
570
571Used to indicate scalar context. See C<GIMME_V>, C<GIMME>, and
572L<perlcall>.
573
21fff326 574=for hackers
575Found in file cop.h
576
954c1994 577=item G_VOID
578
579Used to indicate void context. See C<GIMME_V> and L<perlcall>.
580
21fff326 581=for hackers
582Found in file cop.h
583
954c1994 584=item HEf_SVKEY
585
586This flag, used in the length slot of hash entries and magic structures,
587specifies the structure contains a C<SV*> pointer where a C<char*> pointer
588is to be expected. (For information only--not to be used).
589
21fff326 590=for hackers
591Found in file hv.h
592
954c1994 593=item HeHASH
594
595Returns the computed hash stored in the hash entry.
596
597 U32 HeHASH(HE* he)
598
21fff326 599=for hackers
600Found in file hv.h
601
954c1994 602=item HeKEY
603
604Returns the actual pointer stored in the key slot of the hash entry. The
605pointer may be either C<char*> or C<SV*>, depending on the value of
606C<HeKLEN()>. Can be assigned to. The C<HePV()> or C<HeSVKEY()> macros are
607usually preferable for finding the value of a key.
608
609 void* HeKEY(HE* he)
610
21fff326 611=for hackers
612Found in file hv.h
613
954c1994 614=item HeKLEN
615
616If this is negative, and amounts to C<HEf_SVKEY>, it indicates the entry
617holds an C<SV*> key. Otherwise, holds the actual length of the key. Can
618be assigned to. The C<HePV()> macro is usually preferable for finding key
619lengths.
620
621 STRLEN HeKLEN(HE* he)
622
21fff326 623=for hackers
624Found in file hv.h
625
954c1994 626=item HePV
627
628Returns the key slot of the hash entry as a C<char*> value, doing any
629necessary dereferencing of possibly C<SV*> keys. The length of the string
630is placed in C<len> (this is a macro, so do I<not> use C<&len>). If you do
631not care about what the length of the key is, you may use the global
632variable C<PL_na>, though this is rather less efficient than using a local
633variable. Remember though, that hash keys in perl are free to contain
634embedded nulls, so using C<strlen()> or similar is not a good way to find
635the length of hash keys. This is very similar to the C<SvPV()> macro
636described elsewhere in this document.
637
638 char* HePV(HE* he, STRLEN len)
639
21fff326 640=for hackers
641Found in file hv.h
642
954c1994 643=item HeSVKEY
644
645Returns the key as an C<SV*>, or C<Nullsv> if the hash entry does not
646contain an C<SV*> key.
647
648 SV* HeSVKEY(HE* he)
649
21fff326 650=for hackers
651Found in file hv.h
652
954c1994 653=item HeSVKEY_force
654
655Returns the key as an C<SV*>. Will create and return a temporary mortal
656C<SV*> if the hash entry contains only a C<char*> key.
657
658 SV* HeSVKEY_force(HE* he)
659
21fff326 660=for hackers
661Found in file hv.h
662
954c1994 663=item HeSVKEY_set
664
665Sets the key to a given C<SV*>, taking care to set the appropriate flags to
666indicate the presence of an C<SV*> key, and returns the same
667C<SV*>.
668
669 SV* HeSVKEY_set(HE* he, SV* sv)
670
21fff326 671=for hackers
672Found in file hv.h
673
954c1994 674=item HeVAL
675
676Returns the value slot (type C<SV*>) stored in the hash entry.
677
678 SV* HeVAL(HE* he)
679
21fff326 680=for hackers
681Found in file hv.h
682
954c1994 683=item HvNAME
684
685Returns the package name of a stash. See C<SvSTASH>, C<CvSTASH>.
686
687 char* HvNAME(HV* stash)
688
21fff326 689=for hackers
690Found in file hv.h
691
954c1994 692=item hv_clear
693
694Clears a hash, making it empty.
695
696 void hv_clear(HV* tb)
697
21fff326 698=for hackers
699Found in file hv.c
700
954c1994 701=item hv_delete
702
703Deletes a key/value pair in the hash. The value SV is removed from the
704hash and returned to the caller. The C<klen> is the length of the key.
705The C<flags> value will normally be zero; if set to G_DISCARD then NULL
706will be returned.
707
708 SV* hv_delete(HV* tb, const char* key, U32 klen, I32 flags)
709
21fff326 710=for hackers
711Found in file hv.c
712
954c1994 713=item hv_delete_ent
714
715Deletes a key/value pair in the hash. The value SV is removed from the
716hash and returned to the caller. The C<flags> value will normally be zero;
717if set to G_DISCARD then NULL will be returned. C<hash> can be a valid
718precomputed hash value, or 0 to ask for it to be computed.
719
720 SV* hv_delete_ent(HV* tb, SV* key, I32 flags, U32 hash)
721
21fff326 722=for hackers
723Found in file hv.c
724
954c1994 725=item hv_exists
726
727Returns a boolean indicating whether the specified hash key exists. The
728C<klen> is the length of the key.
729
730 bool hv_exists(HV* tb, const char* key, U32 klen)
731
21fff326 732=for hackers
733Found in file hv.c
734
954c1994 735=item hv_exists_ent
736
737Returns a boolean indicating whether the specified hash key exists. C<hash>
738can be a valid precomputed hash value, or 0 to ask for it to be
739computed.
740
741 bool hv_exists_ent(HV* tb, SV* key, U32 hash)
742
21fff326 743=for hackers
744Found in file hv.c
745
954c1994 746=item hv_fetch
747
748Returns the SV which corresponds to the specified key in the hash. The
749C<klen> is the length of the key. If C<lval> is set then the fetch will be
750part of a store. Check that the return value is non-null before
751dereferencing it to a C<SV*>.
752
96f1132b 753See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
954c1994 754information on how to use this function on tied hashes.
755
756 SV** hv_fetch(HV* tb, const char* key, U32 klen, I32 lval)
757
21fff326 758=for hackers
759Found in file hv.c
760
954c1994 761=item hv_fetch_ent
762
763Returns the hash entry which corresponds to the specified key in the hash.
764C<hash> must be a valid precomputed hash number for the given C<key>, or 0
765if you want the function to compute it. IF C<lval> is set then the fetch
766will be part of a store. Make sure the return value is non-null before
767accessing it. The return value when C<tb> is a tied hash is a pointer to a
768static location, so be sure to make a copy of the structure if you need to
769store it somewhere.
770
96f1132b 771See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
954c1994 772information on how to use this function on tied hashes.
773
774 HE* hv_fetch_ent(HV* tb, SV* key, I32 lval, U32 hash)
775
21fff326 776=for hackers
777Found in file hv.c
778
954c1994 779=item hv_iterinit
780
781Prepares a starting point to traverse a hash table. Returns the number of
782keys in the hash (i.e. the same as C<HvKEYS(tb)>). The return value is
783currently only meaningful for hashes without tie magic.
784
785NOTE: Before version 5.004_65, C<hv_iterinit> used to return the number of
786hash buckets that happen to be in use. If you still need that esoteric
787value, you can get it through the macro C<HvFILL(tb)>.
788
789 I32 hv_iterinit(HV* tb)
790
21fff326 791=for hackers
792Found in file hv.c
793
954c1994 794=item hv_iterkey
795
796Returns the key from the current position of the hash iterator. See
797C<hv_iterinit>.
798
799 char* hv_iterkey(HE* entry, I32* retlen)
800
21fff326 801=for hackers
802Found in file hv.c
803
954c1994 804=item hv_iterkeysv
805
806Returns the key as an C<SV*> from the current position of the hash
807iterator. The return value will always be a mortal copy of the key. Also
808see C<hv_iterinit>.
809
810 SV* hv_iterkeysv(HE* entry)
811
21fff326 812=for hackers
813Found in file hv.c
814
954c1994 815=item hv_iternext
816
817Returns entries from a hash iterator. See C<hv_iterinit>.
818
819 HE* hv_iternext(HV* tb)
820
21fff326 821=for hackers
822Found in file hv.c
823
954c1994 824=item hv_iternextsv
825
826Performs an C<hv_iternext>, C<hv_iterkey>, and C<hv_iterval> in one
827operation.
828
829 SV* hv_iternextsv(HV* hv, char** key, I32* retlen)
830
21fff326 831=for hackers
832Found in file hv.c
833
954c1994 834=item hv_iterval
835
836Returns the value from the current position of the hash iterator. See
837C<hv_iterkey>.
838
839 SV* hv_iterval(HV* tb, HE* entry)
840
21fff326 841=for hackers
842Found in file hv.c
843
954c1994 844=item hv_magic
845
846Adds magic to a hash. See C<sv_magic>.
847
848 void hv_magic(HV* hv, GV* gv, int how)
849
21fff326 850=for hackers
851Found in file hv.c
852
954c1994 853=item hv_store
854
855Stores an SV in a hash. The hash key is specified as C<key> and C<klen> is
856the length of the key. The C<hash> parameter is the precomputed hash
857value; if it is zero then Perl will compute it. The return value will be
858NULL if the operation failed or if the value did not need to be actually
859stored within the hash (as in the case of tied hashes). Otherwise it can
860be dereferenced to get the original C<SV*>. Note that the caller is
861responsible for suitably incrementing the reference count of C<val> before
862the call, and decrementing it if the function returned NULL.
863
96f1132b 864See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
954c1994 865information on how to use this function on tied hashes.
866
867 SV** hv_store(HV* tb, const char* key, U32 klen, SV* val, U32 hash)
868
21fff326 869=for hackers
870Found in file hv.c
871
954c1994 872=item hv_store_ent
873
874Stores C<val> in a hash. The hash key is specified as C<key>. The C<hash>
875parameter is the precomputed hash value; if it is zero then Perl will
876compute it. The return value is the new hash entry so created. It will be
877NULL if the operation failed or if the value did not need to be actually
878stored within the hash (as in the case of tied hashes). Otherwise the
879contents of the return value can be accessed using the C<He???> macros
880described here. Note that the caller is responsible for suitably
881incrementing the reference count of C<val> before the call, and
882decrementing it if the function returned NULL.
883
96f1132b 884See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
954c1994 885information on how to use this function on tied hashes.
886
887 HE* hv_store_ent(HV* tb, SV* key, SV* val, U32 hash)
888
21fff326 889=for hackers
890Found in file hv.c
891
954c1994 892=item hv_undef
893
894Undefines the hash.
895
896 void hv_undef(HV* tb)
897
21fff326 898=for hackers
899Found in file hv.c
900
954c1994 901=item isALNUM
902
4375e838 903Returns a boolean indicating whether the C C<char> is an ASCII alphanumeric
f1cbbd6e 904character (including underscore) or digit.
954c1994 905
906 bool isALNUM(char ch)
907
21fff326 908=for hackers
909Found in file handy.h
910
954c1994 911=item isALPHA
912
4375e838 913Returns a boolean indicating whether the C C<char> is an ASCII alphabetic
954c1994 914character.
915
916 bool isALPHA(char ch)
917
21fff326 918=for hackers
919Found in file handy.h
920
954c1994 921=item isDIGIT
922
4375e838 923Returns a boolean indicating whether the C C<char> is an ASCII
954c1994 924digit.
925
926 bool isDIGIT(char ch)
927
21fff326 928=for hackers
929Found in file handy.h
930
954c1994 931=item isLOWER
932
933Returns a boolean indicating whether the C C<char> is a lowercase
934character.
935
936 bool isLOWER(char ch)
937
21fff326 938=for hackers
939Found in file handy.h
940
954c1994 941=item isSPACE
942
943Returns a boolean indicating whether the C C<char> is whitespace.
944
945 bool isSPACE(char ch)
946
21fff326 947=for hackers
948Found in file handy.h
949
954c1994 950=item isUPPER
951
952Returns a boolean indicating whether the C C<char> is an uppercase
953character.
954
955 bool isUPPER(char ch)
956
21fff326 957=for hackers
958Found in file handy.h
959
954c1994 960=item items
961
962Variable which is setup by C<xsubpp> to indicate the number of
963items on the stack. See L<perlxs/"Variable-length Parameter Lists">.
964
965 I32 items
966
21fff326 967=for hackers
968Found in file XSUB.h
969
954c1994 970=item ix
971
972Variable which is setup by C<xsubpp> to indicate which of an
973XSUB's aliases was used to invoke it. See L<perlxs/"The ALIAS: Keyword">.
974
975 I32 ix
976
21fff326 977=for hackers
978Found in file XSUB.h
979
954c1994 980=item LEAVE
981
982Closing bracket on a callback. See C<ENTER> and L<perlcall>.
983
984 LEAVE;
985
21fff326 986=for hackers
987Found in file scope.h
988
954c1994 989=item looks_like_number
990
991Test if an the content of an SV looks like a number (or is a
992number).
993
994 I32 looks_like_number(SV* sv)
995
21fff326 996=for hackers
997Found in file sv.c
998
954c1994 999=item MARK
1000
1001Stack marker variable for the XSUB. See C<dMARK>.
1002
21fff326 1003=for hackers
1004Found in file pp.h
1005
954c1994 1006=item mg_clear
1007
1008Clear something magical that the SV represents. See C<sv_magic>.
1009
1010 int mg_clear(SV* sv)
1011
21fff326 1012=for hackers
1013Found in file mg.c
1014
954c1994 1015=item mg_copy
1016
1017Copies the magic from one SV to another. See C<sv_magic>.
1018
1019 int mg_copy(SV* sv, SV* nsv, const char* key, I32 klen)
1020
21fff326 1021=for hackers
1022Found in file mg.c
1023
954c1994 1024=item mg_find
1025
1026Finds the magic pointer for type matching the SV. See C<sv_magic>.
1027
1028 MAGIC* mg_find(SV* sv, int type)
1029
21fff326 1030=for hackers
1031Found in file mg.c
1032
954c1994 1033=item mg_free
1034
1035Free any magic storage used by the SV. See C<sv_magic>.
1036
1037 int mg_free(SV* sv)
1038
21fff326 1039=for hackers
1040Found in file mg.c
1041
954c1994 1042=item mg_get
1043
1044Do magic after a value is retrieved from the SV. See C<sv_magic>.
1045
1046 int mg_get(SV* sv)
1047
21fff326 1048=for hackers
1049Found in file mg.c
1050
954c1994 1051=item mg_length
1052
1053Report on the SV's length. See C<sv_magic>.
1054
1055 U32 mg_length(SV* sv)
1056
21fff326 1057=for hackers
1058Found in file mg.c
1059
954c1994 1060=item mg_magical
1061
1062Turns on the magical status of an SV. See C<sv_magic>.
1063
1064 void mg_magical(SV* sv)
1065
21fff326 1066=for hackers
1067Found in file mg.c
1068
954c1994 1069=item mg_set
1070
1071Do magic after a value is assigned to the SV. See C<sv_magic>.
1072
1073 int mg_set(SV* sv)
1074
21fff326 1075=for hackers
1076Found in file mg.c
1077
954c1994 1078=item Move
1079
1080The XSUB-writer's interface to the C C<memmove> function. The C<src> is the
1081source, C<dest> is the destination, C<nitems> is the number of items, and C<type> is
1082the type. Can do overlapping moves. See also C<Copy>.
1083
1084 void Move(void* src, void* dest, int nitems, type)
1085
21fff326 1086=for hackers
1087Found in file handy.h
1088
954c1994 1089=item New
1090
1091The XSUB-writer's interface to the C C<malloc> function.
1092
1093 void New(int id, void* ptr, int nitems, type)
1094
21fff326 1095=for hackers
1096Found in file handy.h
1097
954c1994 1098=item newAV
1099
1100Creates a new AV. The reference count is set to 1.
1101
1102 AV* newAV()
1103
21fff326 1104=for hackers
1105Found in file av.c
1106
954c1994 1107=item Newc
1108
1109The XSUB-writer's interface to the C C<malloc> function, with
1110cast.
1111
1112 void Newc(int id, void* ptr, int nitems, type, cast)
1113
21fff326 1114=for hackers
1115Found in file handy.h
1116
954c1994 1117=item newCONSTSUB
1118
1119Creates a constant sub equivalent to Perl C<sub FOO () { 123 }> which is
1120eligible for inlining at compile-time.
1121
1122 void newCONSTSUB(HV* stash, char* name, SV* sv)
1123
21fff326 1124=for hackers
1125Found in file op.c
1126
954c1994 1127=item newHV
1128
1129Creates a new HV. The reference count is set to 1.
1130
1131 HV* newHV()
1132
21fff326 1133=for hackers
1134Found in file hv.c
1135
954c1994 1136=item newRV_inc
1137
1138Creates an RV wrapper for an SV. The reference count for the original SV is
1139incremented.
1140
1141 SV* newRV_inc(SV* sv)
1142
21fff326 1143=for hackers
1144Found in file sv.h
1145
954c1994 1146=item newRV_noinc
1147
1148Creates an RV wrapper for an SV. The reference count for the original
1149SV is B<not> incremented.
1150
1151 SV* newRV_noinc(SV *sv)
1152
21fff326 1153=for hackers
1154Found in file sv.c
1155
954c1994 1156=item NEWSV
1157
1158Creates a new SV. A non-zero C<len> parameter indicates the number of
1159bytes of preallocated string space the SV should have. An extra byte for a
1160tailing NUL is also reserved. (SvPOK is not set for the SV even if string
1161space is allocated.) The reference count for the new SV is set to 1.
1162C<id> is an integer id between 0 and 1299 (used to identify leaks).
1163
1164 SV* NEWSV(int id, STRLEN len)
1165
21fff326 1166=for hackers
1167Found in file handy.h
1168
954c1994 1169=item newSViv
1170
1171Creates a new SV and copies an integer into it. The reference count for the
1172SV is set to 1.
1173
1174 SV* newSViv(IV i)
1175
21fff326 1176=for hackers
1177Found in file sv.c
1178
954c1994 1179=item newSVnv
1180
1181Creates a new SV and copies a floating point value into it.
1182The reference count for the SV is set to 1.
1183
1184 SV* newSVnv(NV n)
1185
21fff326 1186=for hackers
1187Found in file sv.c
1188
954c1994 1189=item newSVpv
1190
1191Creates a new SV and copies a string into it. The reference count for the
1192SV is set to 1. If C<len> is zero, Perl will compute the length using
1193strlen(). For efficiency, consider using C<newSVpvn> instead.
1194
1195 SV* newSVpv(const char* s, STRLEN len)
1196
21fff326 1197=for hackers
1198Found in file sv.c
1199
954c1994 1200=item newSVpvf
1201
1202Creates a new SV an initialize it with the string formatted like
1203C<sprintf>.
1204
1205 SV* newSVpvf(const char* pat, ...)
1206
21fff326 1207=for hackers
1208Found in file sv.c
1209
954c1994 1210=item newSVpvn
1211
1212Creates a new SV and copies a string into it. The reference count for the
1213SV is set to 1. Note that if C<len> is zero, Perl will create a zero length
1214string. You are responsible for ensuring that the source string is at least
1215C<len> bytes long.
1216
1217 SV* newSVpvn(const char* s, STRLEN len)
1218
21fff326 1219=for hackers
1220Found in file sv.c
1221
954c1994 1222=item newSVrv
1223
1224Creates a new SV for the RV, C<rv>, to point to. If C<rv> is not an RV then
1225it will be upgraded to one. If C<classname> is non-null then the new SV will
1226be blessed in the specified package. The new SV is returned and its
1227reference count is 1.
1228
1229 SV* newSVrv(SV* rv, const char* classname)
1230
21fff326 1231=for hackers
1232Found in file sv.c
1233
954c1994 1234=item newSVsv
1235
1236Creates a new SV which is an exact duplicate of the original SV.
1237
1238 SV* newSVsv(SV* old)
1239
21fff326 1240=for hackers
1241Found in file sv.c
1242
1a3327fb 1243=item newSVuv
1244
1245Creates a new SV and copies an unsigned integer into it.
1246The reference count for the SV is set to 1.
1247
1248 SV* newSVuv(UV u)
1249
21fff326 1250=for hackers
1251Found in file sv.c
1252
954c1994 1253=item newXS
1254
1255Used by C<xsubpp> to hook up XSUBs as Perl subs.
1256
21fff326 1257=for hackers
1258Found in file op.c
1259
954c1994 1260=item newXSproto
1261
1262Used by C<xsubpp> to hook up XSUBs as Perl subs. Adds Perl prototypes to
1263the subs.
1264
21fff326 1265=for hackers
1266Found in file XSUB.h
1267
954c1994 1268=item Newz
1269
1270The XSUB-writer's interface to the C C<malloc> function. The allocated
1271memory is zeroed with C<memzero>.
1272
1273 void Newz(int id, void* ptr, int nitems, type)
1274
21fff326 1275=for hackers
1276Found in file handy.h
1277
954c1994 1278=item Nullav
1279
1280Null AV pointer.
1281
21fff326 1282=for hackers
1283Found in file av.h
1284
954c1994 1285=item Nullch
1286
1287Null character pointer.
1288
21fff326 1289=for hackers
1290Found in file handy.h
1291
954c1994 1292=item Nullcv
1293
1294Null CV pointer.
1295
21fff326 1296=for hackers
1297Found in file cv.h
1298
954c1994 1299=item Nullhv
1300
1301Null HV pointer.
1302
21fff326 1303=for hackers
1304Found in file hv.h
1305
954c1994 1306=item Nullsv
1307
1308Null SV pointer.
1309
21fff326 1310=for hackers
1311Found in file handy.h
1312
954c1994 1313=item ORIGMARK
1314
1315The original stack mark for the XSUB. See C<dORIGMARK>.
1316
21fff326 1317=for hackers
1318Found in file pp.h
1319
954c1994 1320=item perl_alloc
1321
1322Allocates a new Perl interpreter. See L<perlembed>.
1323
1324 PerlInterpreter* perl_alloc()
1325
21fff326 1326=for hackers
1327Found in file perl.c
1328
954c1994 1329=item perl_construct
1330
1331Initializes a new Perl interpreter. See L<perlembed>.
1332
1333 void perl_construct(PerlInterpreter* interp)
1334
21fff326 1335=for hackers
1336Found in file perl.c
1337
954c1994 1338=item perl_destruct
1339
1340Shuts down a Perl interpreter. See L<perlembed>.
1341
1342 void perl_destruct(PerlInterpreter* interp)
1343
21fff326 1344=for hackers
1345Found in file perl.c
1346
954c1994 1347=item perl_free
1348
1349Releases a Perl interpreter. See L<perlembed>.
1350
1351 void perl_free(PerlInterpreter* interp)
1352
21fff326 1353=for hackers
1354Found in file perl.c
1355
954c1994 1356=item perl_parse
1357
1358Tells a Perl interpreter to parse a Perl script. See L<perlembed>.
1359
1360 int perl_parse(PerlInterpreter* interp, XSINIT_t xsinit, int argc, char** argv, char** env)
1361
21fff326 1362=for hackers
1363Found in file perl.c
1364
954c1994 1365=item perl_run
1366
1367Tells a Perl interpreter to run. See L<perlembed>.
1368
1369 int perl_run(PerlInterpreter* interp)
1370
21fff326 1371=for hackers
1372Found in file perl.c
1373
954c1994 1374=item PL_DBsingle
1375
1376When Perl is run in debugging mode, with the B<-d> switch, this SV is a
1377boolean which indicates whether subs are being single-stepped.
1378Single-stepping is automatically turned on after every step. This is the C
1379variable which corresponds to Perl's $DB::single variable. See
1380C<PL_DBsub>.
1381
1382 SV * PL_DBsingle
1383
21fff326 1384=for hackers
1385Found in file intrpvar.h
1386
954c1994 1387=item PL_DBsub
1388
1389When Perl is run in debugging mode, with the B<-d> switch, this GV contains
1390the SV which holds the name of the sub being debugged. This is the C
1391variable which corresponds to Perl's $DB::sub variable. See
1392C<PL_DBsingle>.
1393
1394 GV * PL_DBsub
1395
21fff326 1396=for hackers
1397Found in file intrpvar.h
1398
954c1994 1399=item PL_DBtrace
1400
1401Trace variable used when Perl is run in debugging mode, with the B<-d>
1402switch. This is the C variable which corresponds to Perl's $DB::trace
1403variable. See C<PL_DBsingle>.
1404
1405 SV * PL_DBtrace
1406
21fff326 1407=for hackers
1408Found in file intrpvar.h
1409
954c1994 1410=item PL_dowarn
1411
1412The C variable which corresponds to Perl's $^W warning variable.
1413
1414 bool PL_dowarn
1415
21fff326 1416=for hackers
1417Found in file intrpvar.h
1418
954c1994 1419=item PL_modglobal
1420
1421C<PL_modglobal> is a general purpose, interpreter global HV for use by
1422extensions that need to keep information on a per-interpreter basis.
1423In a pinch, it can also be used as a symbol table for extensions
1424to share data among each other. It is a good idea to use keys
1425prefixed by the package name of the extension that owns the data.
1426
1427 HV* PL_modglobal
1428
21fff326 1429=for hackers
1430Found in file intrpvar.h
1431
954c1994 1432=item PL_na
1433
1434A convenience variable which is typically used with C<SvPV> when one
1435doesn't care about the length of the string. It is usually more efficient
1436to either declare a local variable and use that instead or to use the
1437C<SvPV_nolen> macro.
1438
1439 STRLEN PL_na
1440
21fff326 1441=for hackers
1442Found in file thrdvar.h
1443
954c1994 1444=item PL_sv_no
1445
1446This is the C<false> SV. See C<PL_sv_yes>. Always refer to this as
1447C<&PL_sv_no>.
1448
1449 SV PL_sv_no
1450
21fff326 1451=for hackers
1452Found in file intrpvar.h
1453
954c1994 1454=item PL_sv_undef
1455
1456This is the C<undef> SV. Always refer to this as C<&PL_sv_undef>.
1457
1458 SV PL_sv_undef
1459
21fff326 1460=for hackers
1461Found in file intrpvar.h
1462
954c1994 1463=item PL_sv_yes
1464
1465This is the C<true> SV. See C<PL_sv_no>. Always refer to this as
1466C<&PL_sv_yes>.
1467
1468 SV PL_sv_yes
1469
21fff326 1470=for hackers
1471Found in file intrpvar.h
1472
954c1994 1473=item POPi
1474
1475Pops an integer off the stack.
1476
1477 IV POPi
1478
21fff326 1479=for hackers
1480Found in file pp.h
1481
954c1994 1482=item POPl
1483
1484Pops a long off the stack.
1485
1486 long POPl
1487
21fff326 1488=for hackers
1489Found in file pp.h
1490
954c1994 1491=item POPn
1492
1493Pops a double off the stack.
1494
1495 NV POPn
1496
21fff326 1497=for hackers
1498Found in file pp.h
1499
954c1994 1500=item POPp
1501
1502Pops a string off the stack.
1503
1504 char* POPp
1505
21fff326 1506=for hackers
1507Found in file pp.h
1508
954c1994 1509=item POPs
1510
1511Pops an SV off the stack.
1512
1513 SV* POPs
1514
21fff326 1515=for hackers
1516Found in file pp.h
1517
954c1994 1518=item PUSHi
1519
1520Push an integer onto the stack. The stack must have room for this element.
1521Handles 'set' magic. See C<XPUSHi>.
1522
1523 void PUSHi(IV iv)
1524
21fff326 1525=for hackers
1526Found in file pp.h
1527
954c1994 1528=item PUSHMARK
1529
1530Opening bracket for arguments on a callback. See C<PUTBACK> and
1531L<perlcall>.
1532
1533 PUSHMARK;
1534
21fff326 1535=for hackers
1536Found in file pp.h
1537
954c1994 1538=item PUSHn
1539
1540Push a double onto the stack. The stack must have room for this element.
1541Handles 'set' magic. See C<XPUSHn>.
1542
1543 void PUSHn(NV nv)
1544
21fff326 1545=for hackers
1546Found in file pp.h
1547
954c1994 1548=item PUSHp
1549
1550Push a string onto the stack. The stack must have room for this element.
1551The C<len> indicates the length of the string. Handles 'set' magic. See
1552C<XPUSHp>.
1553
1554 void PUSHp(char* str, STRLEN len)
1555
21fff326 1556=for hackers
1557Found in file pp.h
1558
954c1994 1559=item PUSHs
1560
1561Push an SV onto the stack. The stack must have room for this element.
1562Does not handle 'set' magic. See C<XPUSHs>.
1563
1564 void PUSHs(SV* sv)
1565
21fff326 1566=for hackers
1567Found in file pp.h
1568
954c1994 1569=item PUSHu
1570
1571Push an unsigned integer onto the stack. The stack must have room for this
1572element. See C<XPUSHu>.
1573
1574 void PUSHu(UV uv)
1575
21fff326 1576=for hackers
1577Found in file pp.h
1578
954c1994 1579=item PUTBACK
1580
1581Closing bracket for XSUB arguments. This is usually handled by C<xsubpp>.
1582See C<PUSHMARK> and L<perlcall> for other uses.
1583
1584 PUTBACK;
1585
21fff326 1586=for hackers
1587Found in file pp.h
1588
954c1994 1589=item Renew
1590
1591The XSUB-writer's interface to the C C<realloc> function.
1592
1593 void Renew(void* ptr, int nitems, type)
1594
21fff326 1595=for hackers
1596Found in file handy.h
1597
954c1994 1598=item Renewc
1599
1600The XSUB-writer's interface to the C C<realloc> function, with
1601cast.
1602
1603 void Renewc(void* ptr, int nitems, type, cast)
1604
21fff326 1605=for hackers
1606Found in file handy.h
1607
954c1994 1608=item require_pv
1609
1610Tells Perl to C<require> a module.
1611
1612NOTE: the perl_ form of this function is deprecated.
1613
1614 void require_pv(const char* pv)
1615
21fff326 1616=for hackers
1617Found in file perl.c
1618
954c1994 1619=item RETVAL
1620
1621Variable which is setup by C<xsubpp> to hold the return value for an
1622XSUB. This is always the proper type for the XSUB. See
1623L<perlxs/"The RETVAL Variable">.
1624
1625 (whatever) RETVAL
1626
21fff326 1627=for hackers
1628Found in file XSUB.h
1629
954c1994 1630=item Safefree
1631
1632The XSUB-writer's interface to the C C<free> function.
1633
1634 void Safefree(void* src, void* dest, int nitems, type)
1635
21fff326 1636=for hackers
1637Found in file handy.h
1638
954c1994 1639=item savepv
1640
1641Copy a string to a safe spot. This does not use an SV.
1642
1643 char* savepv(const char* sv)
1644
21fff326 1645=for hackers
1646Found in file util.c
1647
954c1994 1648=item savepvn
1649
1650Copy a string to a safe spot. The C<len> indicates number of bytes to
1651copy. This does not use an SV.
1652
1653 char* savepvn(const char* sv, I32 len)
1654
21fff326 1655=for hackers
1656Found in file util.c
1657
954c1994 1658=item SAVETMPS
1659
1660Opening bracket for temporaries on a callback. See C<FREETMPS> and
1661L<perlcall>.
1662
1663 SAVETMPS;
1664
21fff326 1665=for hackers
1666Found in file scope.h
1667
954c1994 1668=item SP
1669
1670Stack pointer. This is usually handled by C<xsubpp>. See C<dSP> and
1671C<SPAGAIN>.
1672
21fff326 1673=for hackers
1674Found in file pp.h
1675
954c1994 1676=item SPAGAIN
1677
1678Refetch the stack pointer. Used after a callback. See L<perlcall>.
1679
1680 SPAGAIN;
1681
21fff326 1682=for hackers
1683Found in file pp.h
1684
954c1994 1685=item ST
1686
1687Used to access elements on the XSUB's stack.
1688
1689 SV* ST(int ix)
1690
21fff326 1691=for hackers
1692Found in file XSUB.h
1693
954c1994 1694=item strEQ
1695
1696Test two strings to see if they are equal. Returns true or false.
1697
1698 bool strEQ(char* s1, char* s2)
1699
21fff326 1700=for hackers
1701Found in file handy.h
1702
954c1994 1703=item strGE
1704
1705Test two strings to see if the first, C<s1>, is greater than or equal to
1706the second, C<s2>. Returns true or false.
1707
1708 bool strGE(char* s1, char* s2)
1709
21fff326 1710=for hackers
1711Found in file handy.h
1712
954c1994 1713=item strGT
1714
1715Test two strings to see if the first, C<s1>, is greater than the second,
1716C<s2>. Returns true or false.
1717
1718 bool strGT(char* s1, char* s2)
1719
21fff326 1720=for hackers
1721Found in file handy.h
1722
954c1994 1723=item strLE
1724
1725Test two strings to see if the first, C<s1>, is less than or equal to the
1726second, C<s2>. Returns true or false.
1727
1728 bool strLE(char* s1, char* s2)
1729
21fff326 1730=for hackers
1731Found in file handy.h
1732
954c1994 1733=item strLT
1734
1735Test two strings to see if the first, C<s1>, is less than the second,
1736C<s2>. Returns true or false.
1737
1738 bool strLT(char* s1, char* s2)
1739
21fff326 1740=for hackers
1741Found in file handy.h
1742
954c1994 1743=item strNE
1744
1745Test two strings to see if they are different. Returns true or
1746false.
1747
1748 bool strNE(char* s1, char* s2)
1749
21fff326 1750=for hackers
1751Found in file handy.h
1752
954c1994 1753=item strnEQ
1754
1755Test two strings to see if they are equal. The C<len> parameter indicates
1756the number of bytes to compare. Returns true or false. (A wrapper for
1757C<strncmp>).
1758
1759 bool strnEQ(char* s1, char* s2, STRLEN len)
1760
21fff326 1761=for hackers
1762Found in file handy.h
1763
954c1994 1764=item strnNE
1765
1766Test two strings to see if they are different. The C<len> parameter
1767indicates the number of bytes to compare. Returns true or false. (A
1768wrapper for C<strncmp>).
1769
1770 bool strnNE(char* s1, char* s2, STRLEN len)
1771
21fff326 1772=for hackers
1773Found in file handy.h
1774
954c1994 1775=item StructCopy
1776
4375e838 1777This is an architecture-independent macro to copy one structure to another.
954c1994 1778
1779 void StructCopy(type src, type dest, type)
1780
21fff326 1781=for hackers
1782Found in file handy.h
1783
954c1994 1784=item SvCUR
1785
1786Returns the length of the string which is in the SV. See C<SvLEN>.
1787
1788 STRLEN SvCUR(SV* sv)
1789
21fff326 1790=for hackers
1791Found in file sv.h
1792
954c1994 1793=item SvCUR_set
1794
1795Set the length of the string which is in the SV. See C<SvCUR>.
1796
1797 void SvCUR_set(SV* sv, STRLEN len)
1798
21fff326 1799=for hackers
1800Found in file sv.h
1801
954c1994 1802=item SvEND
1803
1804Returns a pointer to the last character in the string which is in the SV.
1805See C<SvCUR>. Access the character as *(SvEND(sv)).
1806
1807 char* SvEND(SV* sv)
1808
21fff326 1809=for hackers
1810Found in file sv.h
1811
954c1994 1812=item SvGETMAGIC
1813
1814Invokes C<mg_get> on an SV if it has 'get' magic. This macro evaluates its
1815argument more than once.
1816
1817 void SvGETMAGIC(SV* sv)
1818
21fff326 1819=for hackers
1820Found in file sv.h
1821
954c1994 1822=item SvGROW
1823
1824Expands the character buffer in the SV so that it has room for the
1825indicated number of bytes (remember to reserve space for an extra trailing
1826NUL character). Calls C<sv_grow> to perform the expansion if necessary.
1827Returns a pointer to the character buffer.
1828
1829 void SvGROW(SV* sv, STRLEN len)
1830
21fff326 1831=for hackers
1832Found in file sv.h
1833
954c1994 1834=item SvIOK
1835
1836Returns a boolean indicating whether the SV contains an integer.
1837
1838 bool SvIOK(SV* sv)
1839
21fff326 1840=for hackers
1841Found in file sv.h
1842
954c1994 1843=item SvIOKp
1844
1845Returns a boolean indicating whether the SV contains an integer. Checks
1846the B<private> setting. Use C<SvIOK>.
1847
1848 bool SvIOKp(SV* sv)
1849
21fff326 1850=for hackers
1851Found in file sv.h
1852
954c1994 1853=item SvIOK_off
1854
1855Unsets the IV status of an SV.
1856
1857 void SvIOK_off(SV* sv)
1858
21fff326 1859=for hackers
1860Found in file sv.h
1861
954c1994 1862=item SvIOK_on
1863
1864Tells an SV that it is an integer.
1865
1866 void SvIOK_on(SV* sv)
1867
21fff326 1868=for hackers
1869Found in file sv.h
1870
954c1994 1871=item SvIOK_only
1872
1873Tells an SV that it is an integer and disables all other OK bits.
1874
1875 void SvIOK_only(SV* sv)
1876
21fff326 1877=for hackers
1878Found in file sv.h
1879
954c1994 1880=item SvIV
1881
1882Coerces the given SV to an integer and returns it.
1883
1884 IV SvIV(SV* sv)
1885
21fff326 1886=for hackers
1887Found in file sv.h
1888
954c1994 1889=item SvIVX
1890
1891Returns the integer which is stored in the SV, assuming SvIOK is
1892true.
1893
1894 IV SvIVX(SV* sv)
1895
21fff326 1896=for hackers
1897Found in file sv.h
1898
954c1994 1899=item SvLEN
1900
1901Returns the size of the string buffer in the SV. See C<SvCUR>.
1902
1903 STRLEN SvLEN(SV* sv)
1904
21fff326 1905=for hackers
1906Found in file sv.h
1907
d11915b8 1908=item SvLOCK
1909
1910Aquires an internal mutex for a SV. Used to make sure multiple threads
1911don't stomp on the guts of an SV at the same time
1912
1913 void SvLOCK(SV* sv)
1914
21fff326 1915=for hackers
1916Found in file sv.h
1917
954c1994 1918=item SvNIOK
1919
1920Returns a boolean indicating whether the SV contains a number, integer or
1921double.
1922
1923 bool SvNIOK(SV* sv)
1924
21fff326 1925=for hackers
1926Found in file sv.h
1927
954c1994 1928=item SvNIOKp
1929
1930Returns a boolean indicating whether the SV contains a number, integer or
1931double. Checks the B<private> setting. Use C<SvNIOK>.
1932
1933 bool SvNIOKp(SV* sv)
1934
21fff326 1935=for hackers
1936Found in file sv.h
1937
954c1994 1938=item SvNIOK_off
1939
1940Unsets the NV/IV status of an SV.
1941
1942 void SvNIOK_off(SV* sv)
1943
21fff326 1944=for hackers
1945Found in file sv.h
1946
954c1994 1947=item SvNOK
1948
1949Returns a boolean indicating whether the SV contains a double.
1950
1951 bool SvNOK(SV* sv)
1952
21fff326 1953=for hackers
1954Found in file sv.h
1955
954c1994 1956=item SvNOKp
1957
1958Returns a boolean indicating whether the SV contains a double. Checks the
1959B<private> setting. Use C<SvNOK>.
1960
1961 bool SvNOKp(SV* sv)
1962
21fff326 1963=for hackers
1964Found in file sv.h
1965
954c1994 1966=item SvNOK_off
1967
1968Unsets the NV status of an SV.
1969
1970 void SvNOK_off(SV* sv)
1971
21fff326 1972=for hackers
1973Found in file sv.h
1974
954c1994 1975=item SvNOK_on
1976
1977Tells an SV that it is a double.
1978
1979 void SvNOK_on(SV* sv)
1980
21fff326 1981=for hackers
1982Found in file sv.h
1983
954c1994 1984=item SvNOK_only
1985
1986Tells an SV that it is a double and disables all other OK bits.
1987
1988 void SvNOK_only(SV* sv)
1989
21fff326 1990=for hackers
1991Found in file sv.h
1992
954c1994 1993=item SvNV
1994
1995Coerce the given SV to a double and return it.
1996
1997 NV SvNV(SV* sv)
1998
21fff326 1999=for hackers
2000Found in file sv.h
2001
954c1994 2002=item SvNVX
2003
2004Returns the double which is stored in the SV, assuming SvNOK is
2005true.
2006
2007 NV SvNVX(SV* sv)
2008
21fff326 2009=for hackers
2010Found in file sv.h
2011
954c1994 2012=item SvOK
2013
2014Returns a boolean indicating whether the value is an SV.
2015
2016 bool SvOK(SV* sv)
2017
21fff326 2018=for hackers
2019Found in file sv.h
2020
954c1994 2021=item SvOOK
2022
2023Returns a boolean indicating whether the SvIVX is a valid offset value for
2024the SvPVX. This hack is used internally to speed up removal of characters
2025from the beginning of a SvPV. When SvOOK is true, then the start of the
2026allocated string buffer is really (SvPVX - SvIVX).
2027
2028 bool SvOOK(SV* sv)
2029
21fff326 2030=for hackers
2031Found in file sv.h
2032
954c1994 2033=item SvPOK
2034
2035Returns a boolean indicating whether the SV contains a character
2036string.
2037
2038 bool SvPOK(SV* sv)
2039
21fff326 2040=for hackers
2041Found in file sv.h
2042
954c1994 2043=item SvPOKp
2044
2045Returns a boolean indicating whether the SV contains a character string.
2046Checks the B<private> setting. Use C<SvPOK>.
2047
2048 bool SvPOKp(SV* sv)
2049
21fff326 2050=for hackers
2051Found in file sv.h
2052
954c1994 2053=item SvPOK_off
2054
2055Unsets the PV status of an SV.
2056
2057 void SvPOK_off(SV* sv)
2058
21fff326 2059=for hackers
2060Found in file sv.h
2061
954c1994 2062=item SvPOK_on
2063
2064Tells an SV that it is a string.
2065
2066 void SvPOK_on(SV* sv)
2067
21fff326 2068=for hackers
2069Found in file sv.h
2070
954c1994 2071=item SvPOK_only
2072
2073Tells an SV that it is a string and disables all other OK bits.
2074
2075 void SvPOK_only(SV* sv)
2076
21fff326 2077=for hackers
2078Found in file sv.h
2079
954c1994 2080=item SvPV
2081
2082Returns a pointer to the string in the SV, or a stringified form of the SV
2083if the SV does not contain a string. Handles 'get' magic.
2084
2085 char* SvPV(SV* sv, STRLEN len)
2086
21fff326 2087=for hackers
2088Found in file sv.h
2089
954c1994 2090=item SvPVX
2091
2092Returns a pointer to the string in the SV. The SV must contain a
2093string.
2094
2095 char* SvPVX(SV* sv)
2096
21fff326 2097=for hackers
2098Found in file sv.h
2099
954c1994 2100=item SvPV_force
2101
2102Like <SvPV> but will force the SV into becoming a string (SvPOK). You want
2103force if you are going to update the SvPVX directly.
2104
2105 char* SvPV_force(SV* sv, STRLEN len)
2106
21fff326 2107=for hackers
2108Found in file sv.h
2109
954c1994 2110=item SvPV_nolen
2111
2112Returns a pointer to the string in the SV, or a stringified form of the SV
2113if the SV does not contain a string. Handles 'get' magic.
2114
2115 char* SvPV_nolen(SV* sv)
2116
21fff326 2117=for hackers
2118Found in file sv.h
2119
954c1994 2120=item SvREFCNT
2121
2122Returns the value of the object's reference count.
2123
2124 U32 SvREFCNT(SV* sv)
2125
21fff326 2126=for hackers
2127Found in file sv.h
2128
954c1994 2129=item SvREFCNT_dec
2130
2131Decrements the reference count of the given SV.
2132
2133 void SvREFCNT_dec(SV* sv)
2134
21fff326 2135=for hackers
2136Found in file sv.h
2137
954c1994 2138=item SvREFCNT_inc
2139
2140Increments the reference count of the given SV.
2141
2142 SV* SvREFCNT_inc(SV* sv)
2143
21fff326 2144=for hackers
2145Found in file sv.h
2146
954c1994 2147=item SvROK
2148
2149Tests if the SV is an RV.
2150
2151 bool SvROK(SV* sv)
2152
21fff326 2153=for hackers
2154Found in file sv.h
2155
954c1994 2156=item SvROK_off
2157
2158Unsets the RV status of an SV.
2159
2160 void SvROK_off(SV* sv)
2161
21fff326 2162=for hackers
2163Found in file sv.h
2164
954c1994 2165=item SvROK_on
2166
2167Tells an SV that it is an RV.
2168
2169 void SvROK_on(SV* sv)
2170
21fff326 2171=for hackers
2172Found in file sv.h
2173
954c1994 2174=item SvRV
2175
2176Dereferences an RV to return the SV.
2177
2178 SV* SvRV(SV* sv)
2179
21fff326 2180=for hackers
2181Found in file sv.h
2182
954c1994 2183=item SvSETMAGIC
2184
2185Invokes C<mg_set> on an SV if it has 'set' magic. This macro evaluates its
2186argument more than once.
2187
2188 void SvSETMAGIC(SV* sv)
2189
21fff326 2190=for hackers
2191Found in file sv.h
2192
954c1994 2193=item SvSetSV
2194
2195Calls C<sv_setsv> if dsv is not the same as ssv. May evaluate arguments
2196more than once.
2197
2198 void SvSetSV(SV* dsb, SV* ssv)
2199
21fff326 2200=for hackers
2201Found in file sv.h
2202
954c1994 2203=item SvSetSV_nosteal
2204
2205Calls a non-destructive version of C<sv_setsv> if dsv is not the same as
2206ssv. May evaluate arguments more than once.
2207
2208 void SvSetSV_nosteal(SV* dsv, SV* ssv)
2209
21fff326 2210=for hackers
2211Found in file sv.h
2212
954c1994 2213=item SvSTASH
2214
2215Returns the stash of the SV.
2216
2217 HV* SvSTASH(SV* sv)
2218
21fff326 2219=for hackers
2220Found in file sv.h
2221
954c1994 2222=item SvTAINT
2223
2224Taints an SV if tainting is enabled
2225
2226 void SvTAINT(SV* sv)
2227
21fff326 2228=for hackers
2229Found in file sv.h
2230
954c1994 2231=item SvTAINTED
2232
2233Checks to see if an SV is tainted. Returns TRUE if it is, FALSE if
2234not.
2235
2236 bool SvTAINTED(SV* sv)
2237
21fff326 2238=for hackers
2239Found in file sv.h
2240
954c1994 2241=item SvTAINTED_off
2242
2243Untaints an SV. Be I<very> careful with this routine, as it short-circuits
2244some of Perl's fundamental security features. XS module authors should not
2245use this function unless they fully understand all the implications of
2246unconditionally untainting the value. Untainting should be done in the
2247standard perl fashion, via a carefully crafted regexp, rather than directly
2248untainting variables.
2249
2250 void SvTAINTED_off(SV* sv)
2251
21fff326 2252=for hackers
2253Found in file sv.h
2254
954c1994 2255=item SvTAINTED_on
2256
2257Marks an SV as tainted.
2258
2259 void SvTAINTED_on(SV* sv)
2260
21fff326 2261=for hackers
2262Found in file sv.h
2263
954c1994 2264=item SvTRUE
2265
2266Returns a boolean indicating whether Perl would evaluate the SV as true or
2267false, defined or undefined. Does not handle 'get' magic.
2268
2269 bool SvTRUE(SV* sv)
2270
21fff326 2271=for hackers
2272Found in file sv.h
2273
954c1994 2274=item SvTYPE
2275
2276Returns the type of the SV. See C<svtype>.
2277
2278 svtype SvTYPE(SV* sv)
2279
21fff326 2280=for hackers
2281Found in file sv.h
2282
d11915b8 2283=item svtype
2284
2285An enum of flags for Perl types. These are found in the file B<sv.h>
2286in the C<svtype> enum. Test these flags with the C<SvTYPE> macro.
2287
21fff326 2288=for hackers
2289Found in file sv.h
2290
954c1994 2291=item SVt_IV
2292
2293Integer type flag for scalars. See C<svtype>.
2294
21fff326 2295=for hackers
2296Found in file sv.h
2297
954c1994 2298=item SVt_NV
2299
2300Double type flag for scalars. See C<svtype>.
2301
21fff326 2302=for hackers
2303Found in file sv.h
2304
954c1994 2305=item SVt_PV
2306
2307Pointer type flag for scalars. See C<svtype>.
2308
21fff326 2309=for hackers
2310Found in file sv.h
2311
954c1994 2312=item SVt_PVAV
2313
2314Type flag for arrays. See C<svtype>.
2315
21fff326 2316=for hackers
2317Found in file sv.h
2318
954c1994 2319=item SVt_PVCV
2320
2321Type flag for code refs. See C<svtype>.
2322
21fff326 2323=for hackers
2324Found in file sv.h
2325
954c1994 2326=item SVt_PVHV
2327
2328Type flag for hashes. See C<svtype>.
2329
21fff326 2330=for hackers
2331Found in file sv.h
2332
954c1994 2333=item SVt_PVMG
2334
2335Type flag for blessed scalars. See C<svtype>.
2336
21fff326 2337=for hackers
2338Found in file sv.h
2339
d11915b8 2340=item SvUNLOCK
2341
2342Release the internal mutex for an SV.
2343
2344 void SvUNLOCK(SV* sv)
2345
21fff326 2346=for hackers
2347Found in file sv.h
2348
954c1994 2349=item SvUPGRADE
2350
2351Used to upgrade an SV to a more complex form. Uses C<sv_upgrade> to
2352perform the upgrade if necessary. See C<svtype>.
2353
2354 void SvUPGRADE(SV* sv, svtype type)
2355
21fff326 2356=for hackers
2357Found in file sv.h
2358
954c1994 2359=item SvUV
2360
2361Coerces the given SV to an unsigned integer and returns it.
2362
2363 UV SvUV(SV* sv)
2364
21fff326 2365=for hackers
2366Found in file sv.h
2367
954c1994 2368=item SvUVX
2369
2370Returns the unsigned integer which is stored in the SV, assuming SvIOK is
2371true.
2372
2373 UV SvUVX(SV* sv)
2374
21fff326 2375=for hackers
2376Found in file sv.h
2377
954c1994 2378=item sv_2mortal
2379
2380Marks an SV as mortal. The SV will be destroyed when the current context
2381ends.
2382
2383 SV* sv_2mortal(SV* sv)
2384
21fff326 2385=for hackers
2386Found in file sv.c
2387
954c1994 2388=item sv_bless
2389
2390Blesses an SV into a specified package. The SV must be an RV. The package
2391must be designated by its stash (see C<gv_stashpv()>). The reference count
2392of the SV is unaffected.
2393
2394 SV* sv_bless(SV* sv, HV* stash)
2395
21fff326 2396=for hackers
2397Found in file sv.c
2398
954c1994 2399=item sv_catpv
2400
2401Concatenates the string onto the end of the string which is in the SV.
2402Handles 'get' magic, but not 'set' magic. See C<sv_catpv_mg>.
2403
2404 void sv_catpv(SV* sv, const char* ptr)
2405
21fff326 2406=for hackers
2407Found in file sv.c
2408
954c1994 2409=item sv_catpvf
2410
2411Processes its arguments like C<sprintf> and appends the formatted output
2412to an SV. Handles 'get' magic, but not 'set' magic. C<SvSETMAGIC()> must
2413typically be called after calling this function to handle 'set' magic.
2414
2415 void sv_catpvf(SV* sv, const char* pat, ...)
2416
21fff326 2417=for hackers
2418Found in file sv.c
2419
954c1994 2420=item sv_catpvf_mg
2421
2422Like C<sv_catpvf>, but also handles 'set' magic.
2423
2424 void sv_catpvf_mg(SV *sv, const char* pat, ...)
2425
21fff326 2426=for hackers
2427Found in file sv.c
2428
954c1994 2429=item sv_catpvn
2430
2431Concatenates the string onto the end of the string which is in the SV. The
2432C<len> indicates number of bytes to copy. Handles 'get' magic, but not
2433'set' magic. See C<sv_catpvn_mg>.
2434
2435 void sv_catpvn(SV* sv, const char* ptr, STRLEN len)
2436
21fff326 2437=for hackers
2438Found in file sv.c
2439
954c1994 2440=item sv_catpvn_mg
2441
2442Like C<sv_catpvn>, but also handles 'set' magic.
2443
2444 void sv_catpvn_mg(SV *sv, const char *ptr, STRLEN len)
2445
21fff326 2446=for hackers
2447Found in file sv.c
2448
954c1994 2449=item sv_catpv_mg
2450
2451Like C<sv_catpv>, but also handles 'set' magic.
2452
2453 void sv_catpv_mg(SV *sv, const char *ptr)
2454
21fff326 2455=for hackers
2456Found in file sv.c
2457
954c1994 2458=item sv_catsv
2459
2460Concatenates the string from SV C<ssv> onto the end of the string in SV
2461C<dsv>. Handles 'get' magic, but not 'set' magic. See C<sv_catsv_mg>.
2462
2463 void sv_catsv(SV* dsv, SV* ssv)
2464
21fff326 2465=for hackers
2466Found in file sv.c
2467
954c1994 2468=item sv_catsv_mg
2469
2470Like C<sv_catsv>, but also handles 'set' magic.
2471
2472 void sv_catsv_mg(SV *dstr, SV *sstr)
2473
21fff326 2474=for hackers
2475Found in file sv.c
2476
954c1994 2477=item sv_chop
2478
2479Efficient removal of characters from the beginning of the string buffer.
2480SvPOK(sv) must be true and the C<ptr> must be a pointer to somewhere inside
2481the string buffer. The C<ptr> becomes the first character of the adjusted
2482string.
2483
2484 void sv_chop(SV* sv, char* ptr)
2485
21fff326 2486=for hackers
2487Found in file sv.c
2488
954c1994 2489=item sv_cmp
2490
2491Compares the strings in two SVs. Returns -1, 0, or 1 indicating whether the
2492string in C<sv1> is less than, equal to, or greater than the string in
2493C<sv2>.
2494
2495 I32 sv_cmp(SV* sv1, SV* sv2)
2496
21fff326 2497=for hackers
2498Found in file sv.c
2499
954c1994 2500=item sv_dec
2501
2502Auto-decrement of the value in the SV.
2503
2504 void sv_dec(SV* sv)
2505
21fff326 2506=for hackers
2507Found in file sv.c
2508
954c1994 2509=item sv_derived_from
2510
2511Returns a boolean indicating whether the SV is derived from the specified
2512class. This is the function that implements C<UNIVERSAL::isa>. It works
2513for class names as well as for objects.
2514
2515 bool sv_derived_from(SV* sv, const char* name)
2516
21fff326 2517=for hackers
2518Found in file universal.c
2519
954c1994 2520=item sv_eq
2521
2522Returns a boolean indicating whether the strings in the two SVs are
2523identical.
2524
2525 I32 sv_eq(SV* sv1, SV* sv2)
2526
21fff326 2527=for hackers
2528Found in file sv.c
2529
954c1994 2530=item sv_grow
2531
2532Expands the character buffer in the SV. This will use C<sv_unref> and will
2533upgrade the SV to C<SVt_PV>. Returns a pointer to the character buffer.
2534Use C<SvGROW>.
2535
2536 char* sv_grow(SV* sv, STRLEN newlen)
2537
21fff326 2538=for hackers
2539Found in file sv.c
2540
954c1994 2541=item sv_inc
2542
2543Auto-increment of the value in the SV.
2544
2545 void sv_inc(SV* sv)
2546
21fff326 2547=for hackers
2548Found in file sv.c
2549
954c1994 2550=item sv_insert
2551
2552Inserts a string at the specified offset/length within the SV. Similar to
2553the Perl substr() function.
2554
2555 void sv_insert(SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen)
2556
21fff326 2557=for hackers
2558Found in file sv.c
2559
954c1994 2560=item sv_isa
2561
2562Returns a boolean indicating whether the SV is blessed into the specified
2563class. This does not check for subtypes; use C<sv_derived_from> to verify
2564an inheritance relationship.
2565
2566 int sv_isa(SV* sv, const char* name)
2567
21fff326 2568=for hackers
2569Found in file sv.c
2570
954c1994 2571=item sv_isobject
2572
2573Returns a boolean indicating whether the SV is an RV pointing to a blessed
2574object. If the SV is not an RV, or if the object is not blessed, then this
2575will return false.
2576
2577 int sv_isobject(SV* sv)
2578
21fff326 2579=for hackers
2580Found in file sv.c
2581
954c1994 2582=item sv_len
2583
2584Returns the length of the string in the SV. See also C<SvCUR>.
2585
2586 STRLEN sv_len(SV* sv)
2587
21fff326 2588=for hackers
2589Found in file sv.c
2590
954c1994 2591=item sv_magic
2592
2593Adds magic to an SV.
2594
2595 void sv_magic(SV* sv, SV* obj, int how, const char* name, I32 namlen)
2596
21fff326 2597=for hackers
2598Found in file sv.c
2599
954c1994 2600=item sv_mortalcopy
2601
2602Creates a new SV which is a copy of the original SV. The new SV is marked
2603as mortal.
2604
2605 SV* sv_mortalcopy(SV* oldsv)
2606
21fff326 2607=for hackers
2608Found in file sv.c
2609
954c1994 2610=item sv_newmortal
2611
2612Creates a new SV which is mortal. The reference count of the SV is set to 1.
2613
2614 SV* sv_newmortal()
2615
21fff326 2616=for hackers
2617Found in file sv.c
2618
954c1994 2619=item sv_setiv
2620
2621Copies an integer into the given SV. Does not handle 'set' magic. See
2622C<sv_setiv_mg>.
2623
2624 void sv_setiv(SV* sv, IV num)
2625
21fff326 2626=for hackers
2627Found in file sv.c
2628
954c1994 2629=item sv_setiv_mg
2630
2631Like C<sv_setiv>, but also handles 'set' magic.
2632
2633 void sv_setiv_mg(SV *sv, IV i)
2634
21fff326 2635=for hackers
2636Found in file sv.c
2637
954c1994 2638=item sv_setnv
2639
2640Copies a double into the given SV. Does not handle 'set' magic. See
2641C<sv_setnv_mg>.
2642
2643 void sv_setnv(SV* sv, NV num)
2644
21fff326 2645=for hackers
2646Found in file sv.c
2647
954c1994 2648=item sv_setnv_mg
2649
2650Like C<sv_setnv>, but also handles 'set' magic.
2651
2652 void sv_setnv_mg(SV *sv, NV num)
2653
21fff326 2654=for hackers
2655Found in file sv.c
2656
954c1994 2657=item sv_setpv
2658
2659Copies a string into an SV. The string must be null-terminated. Does not
2660handle 'set' magic. See C<sv_setpv_mg>.
2661
2662 void sv_setpv(SV* sv, const char* ptr)
2663
21fff326 2664=for hackers
2665Found in file sv.c
2666
954c1994 2667=item sv_setpvf
2668
2669Processes its arguments like C<sprintf> and sets an SV to the formatted
2670output. Does not handle 'set' magic. See C<sv_setpvf_mg>.
2671
2672 void sv_setpvf(SV* sv, const char* pat, ...)
2673
21fff326 2674=for hackers
2675Found in file sv.c
2676
954c1994 2677=item sv_setpvf_mg
2678
2679Like C<sv_setpvf>, but also handles 'set' magic.
2680
2681 void sv_setpvf_mg(SV *sv, const char* pat, ...)
2682
21fff326 2683=for hackers
2684Found in file sv.c
2685
954c1994 2686=item sv_setpviv
2687
2688Copies an integer into the given SV, also updating its string value.
2689Does not handle 'set' magic. See C<sv_setpviv_mg>.
2690
2691 void sv_setpviv(SV* sv, IV num)
2692
21fff326 2693=for hackers
2694Found in file sv.c
2695
954c1994 2696=item sv_setpviv_mg
2697
2698Like C<sv_setpviv>, but also handles 'set' magic.
2699
2700 void sv_setpviv_mg(SV *sv, IV iv)
2701
21fff326 2702=for hackers
2703Found in file sv.c
2704
954c1994 2705=item sv_setpvn
2706
2707Copies a string into an SV. The C<len> parameter indicates the number of
2708bytes to be copied. Does not handle 'set' magic. See C<sv_setpvn_mg>.
2709
2710 void sv_setpvn(SV* sv, const char* ptr, STRLEN len)
2711
21fff326 2712=for hackers
2713Found in file sv.c
2714
954c1994 2715=item sv_setpvn_mg
2716
2717Like C<sv_setpvn>, but also handles 'set' magic.
2718
2719 void sv_setpvn_mg(SV *sv, const char *ptr, STRLEN len)
2720
21fff326 2721=for hackers
2722Found in file sv.c
2723
954c1994 2724=item sv_setpv_mg
2725
2726Like C<sv_setpv>, but also handles 'set' magic.
2727
2728 void sv_setpv_mg(SV *sv, const char *ptr)
2729
21fff326 2730=for hackers
2731Found in file sv.c
2732
954c1994 2733=item sv_setref_iv
2734
2735Copies an integer into a new SV, optionally blessing the SV. The C<rv>
2736argument will be upgraded to an RV. That RV will be modified to point to
2737the new SV. The C<classname> argument indicates the package for the
2738blessing. Set C<classname> to C<Nullch> to avoid the blessing. The new SV
2739will be returned and will have a reference count of 1.
2740
2741 SV* sv_setref_iv(SV* rv, const char* classname, IV iv)
2742
21fff326 2743=for hackers
2744Found in file sv.c
2745
954c1994 2746=item sv_setref_nv
2747
2748Copies a double into a new SV, optionally blessing the SV. The C<rv>
2749argument will be upgraded to an RV. That RV will be modified to point to
2750the new SV. The C<classname> argument indicates the package for the
2751blessing. Set C<classname> to C<Nullch> to avoid the blessing. The new SV
2752will be returned and will have a reference count of 1.
2753
2754 SV* sv_setref_nv(SV* rv, const char* classname, NV nv)
2755
21fff326 2756=for hackers
2757Found in file sv.c
2758
954c1994 2759=item sv_setref_pv
2760
2761Copies a pointer into a new SV, optionally blessing the SV. The C<rv>
2762argument will be upgraded to an RV. That RV will be modified to point to
2763the new SV. If the C<pv> argument is NULL then C<PL_sv_undef> will be placed
2764into the SV. The C<classname> argument indicates the package for the
2765blessing. Set C<classname> to C<Nullch> to avoid the blessing. The new SV
2766will be returned and will have a reference count of 1.
2767
2768Do not use with other Perl types such as HV, AV, SV, CV, because those
2769objects will become corrupted by the pointer copy process.
2770
2771Note that C<sv_setref_pvn> copies the string while this copies the pointer.
2772
2773 SV* sv_setref_pv(SV* rv, const char* classname, void* pv)
2774
21fff326 2775=for hackers
2776Found in file sv.c
2777
954c1994 2778=item sv_setref_pvn
2779
2780Copies a string into a new SV, optionally blessing the SV. The length of the
2781string must be specified with C<n>. The C<rv> argument will be upgraded to
2782an RV. That RV will be modified to point to the new SV. The C<classname>
2783argument indicates the package for the blessing. Set C<classname> to
2784C<Nullch> to avoid the blessing. The new SV will be returned and will have
2785a reference count of 1.
2786
2787Note that C<sv_setref_pv> copies the pointer while this copies the string.
2788
2789 SV* sv_setref_pvn(SV* rv, const char* classname, char* pv, STRLEN n)
2790
21fff326 2791=for hackers
2792Found in file sv.c
2793
954c1994 2794=item sv_setsv
2795
2796Copies the contents of the source SV C<ssv> into the destination SV C<dsv>.
2797The source SV may be destroyed if it is mortal. Does not handle 'set'
2798magic. See the macro forms C<SvSetSV>, C<SvSetSV_nosteal> and
2799C<sv_setsv_mg>.
2800
2801 void sv_setsv(SV* dsv, SV* ssv)
2802
21fff326 2803=for hackers
2804Found in file sv.c
2805
954c1994 2806=item sv_setsv_mg
2807
2808Like C<sv_setsv>, but also handles 'set' magic.
2809
2810 void sv_setsv_mg(SV *dstr, SV *sstr)
2811
21fff326 2812=for hackers
2813Found in file sv.c
2814
954c1994 2815=item sv_setuv
2816
2817Copies an unsigned integer into the given SV. Does not handle 'set' magic.
2818See C<sv_setuv_mg>.
2819
2820 void sv_setuv(SV* sv, UV num)
2821
21fff326 2822=for hackers
2823Found in file sv.c
2824
954c1994 2825=item sv_setuv_mg
2826
2827Like C<sv_setuv>, but also handles 'set' magic.
2828
2829 void sv_setuv_mg(SV *sv, UV u)
2830
21fff326 2831=for hackers
2832Found in file sv.c
2833
954c1994 2834=item sv_unref
2835
2836Unsets the RV status of the SV, and decrements the reference count of
2837whatever was being referenced by the RV. This can almost be thought of
2838as a reversal of C<newSVrv>. See C<SvROK_off>.
2839
2840 void sv_unref(SV* sv)
2841
21fff326 2842=for hackers
2843Found in file sv.c
2844
954c1994 2845=item sv_upgrade
2846
2847Upgrade an SV to a more complex form. Use C<SvUPGRADE>. See
2848C<svtype>.
2849
2850 bool sv_upgrade(SV* sv, U32 mt)
2851
21fff326 2852=for hackers
2853Found in file sv.c
2854
954c1994 2855=item sv_usepvn
2856
2857Tells an SV to use C<ptr> to find its string value. Normally the string is
2858stored inside the SV but sv_usepvn allows the SV to use an outside string.
2859The C<ptr> should point to memory that was allocated by C<malloc>. The
2860string length, C<len>, must be supplied. This function will realloc the
2861memory pointed to by C<ptr>, so that pointer should not be freed or used by
2862the programmer after giving it to sv_usepvn. Does not handle 'set' magic.
2863See C<sv_usepvn_mg>.
2864
2865 void sv_usepvn(SV* sv, char* ptr, STRLEN len)
2866
21fff326 2867=for hackers
2868Found in file sv.c
2869
954c1994 2870=item sv_usepvn_mg
2871
2872Like C<sv_usepvn>, but also handles 'set' magic.
2873
2874 void sv_usepvn_mg(SV *sv, char *ptr, STRLEN len)
2875
21fff326 2876=for hackers
2877Found in file sv.c
2878
954c1994 2879=item sv_vcatpvfn
2880
2881Processes its arguments like C<vsprintf> and appends the formatted output
2882to an SV. Uses an array of SVs if the C style variable argument list is
2883missing (NULL). When running with taint checks enabled, indicates via
2884C<maybe_tainted> if results are untrustworthy (often due to the use of
2885locales).
2886
2887 void sv_vcatpvfn(SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)
2888
21fff326 2889=for hackers
2890Found in file sv.c
2891
954c1994 2892=item sv_vsetpvfn
2893
2894Works like C<vcatpvfn> but copies the text into the SV instead of
2895appending it.
2896
2897 void sv_vsetpvfn(SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)
2898
21fff326 2899=for hackers
2900Found in file sv.c
2901
954c1994 2902=item THIS
2903
2904Variable which is setup by C<xsubpp> to designate the object in a C++
2905XSUB. This is always the proper type for the C++ object. See C<CLASS> and
2906L<perlxs/"Using XS With C++">.
2907
2908 (whatever) THIS
2909
21fff326 2910=for hackers
2911Found in file XSUB.h
2912
954c1994 2913=item toLOWER
2914
2915Converts the specified character to lowercase.
2916
2917 char toLOWER(char ch)
2918
21fff326 2919=for hackers
2920Found in file handy.h
2921
954c1994 2922=item toUPPER
2923
2924Converts the specified character to uppercase.
2925
2926 char toUPPER(char ch)
2927
21fff326 2928=for hackers
2929Found in file handy.h
2930
954c1994 2931=item warn
2932
2933This is the XSUB-writer's interface to Perl's C<warn> function. Use this
2934function the same way you use the C C<printf> function. See
2935C<croak>.
2936
2937 void warn(const char* pat, ...)
2938
21fff326 2939=for hackers
2940Found in file util.c
2941
954c1994 2942=item XPUSHi
2943
2944Push an integer onto the stack, extending the stack if necessary. Handles
2945'set' magic. See C<PUSHi>.
2946
2947 void XPUSHi(IV iv)
2948
21fff326 2949=for hackers
2950Found in file pp.h
2951
954c1994 2952=item XPUSHn
2953
2954Push a double onto the stack, extending the stack if necessary. Handles
2955'set' magic. See C<PUSHn>.
2956
2957 void XPUSHn(NV nv)
2958
21fff326 2959=for hackers
2960Found in file pp.h
2961
954c1994 2962=item XPUSHp
2963
2964Push a string onto the stack, extending the stack if necessary. The C<len>
2965indicates the length of the string. Handles 'set' magic. See
2966C<PUSHp>.
2967
2968 void XPUSHp(char* str, STRLEN len)
2969
21fff326 2970=for hackers
2971Found in file pp.h
2972
954c1994 2973=item XPUSHs
2974
2975Push an SV onto the stack, extending the stack if necessary. Does not
2976handle 'set' magic. See C<PUSHs>.
2977
2978 void XPUSHs(SV* sv)
2979
21fff326 2980=for hackers
2981Found in file pp.h
2982
954c1994 2983=item XPUSHu
2984
2985Push an unsigned integer onto the stack, extending the stack if necessary.
2986See C<PUSHu>.
2987
2988 void XPUSHu(UV uv)
2989
21fff326 2990=for hackers
2991Found in file pp.h
2992
954c1994 2993=item XS
2994
2995Macro to declare an XSUB and its C parameter list. This is handled by
2996C<xsubpp>.
2997
21fff326 2998=for hackers
2999Found in file XSUB.h
3000
954c1994 3001=item XSRETURN
3002
3003Return from XSUB, indicating number of items on the stack. This is usually
3004handled by C<xsubpp>.
3005
3006 void XSRETURN(int nitems)
3007
21fff326 3008=for hackers
3009Found in file XSUB.h
3010
954c1994 3011=item XSRETURN_EMPTY
3012
3013Return an empty list from an XSUB immediately.
3014
3015 XSRETURN_EMPTY;
3016
21fff326 3017=for hackers
3018Found in file XSUB.h
3019
954c1994 3020=item XSRETURN_IV
3021
3022Return an integer from an XSUB immediately. Uses C<XST_mIV>.
3023
3024 void XSRETURN_IV(IV iv)
3025
21fff326 3026=for hackers
3027Found in file XSUB.h
3028
954c1994 3029=item XSRETURN_NO
3030
3031Return C<&PL_sv_no> from an XSUB immediately. Uses C<XST_mNO>.
3032
3033 XSRETURN_NO;
3034
21fff326 3035=for hackers
3036Found in file XSUB.h
3037
954c1994 3038=item XSRETURN_NV
3039
3040Return an double from an XSUB immediately. Uses C<XST_mNV>.
3041
3042 void XSRETURN_NV(NV nv)
3043
21fff326 3044=for hackers
3045Found in file XSUB.h
3046
954c1994 3047=item XSRETURN_PV
3048
3049Return a copy of a string from an XSUB immediately. Uses C<XST_mPV>.
3050
3051 void XSRETURN_PV(char* str)
3052
21fff326 3053=for hackers
3054Found in file XSUB.h
3055
954c1994 3056=item XSRETURN_UNDEF
3057
3058Return C<&PL_sv_undef> from an XSUB immediately. Uses C<XST_mUNDEF>.
3059
3060 XSRETURN_UNDEF;
3061
21fff326 3062=for hackers
3063Found in file XSUB.h
3064
954c1994 3065=item XSRETURN_YES
3066
3067Return C<&PL_sv_yes> from an XSUB immediately. Uses C<XST_mYES>.
3068
3069 XSRETURN_YES;
3070
21fff326 3071=for hackers
3072Found in file XSUB.h
3073
954c1994 3074=item XST_mIV
3075
3076Place an integer into the specified position C<pos> on the stack. The
3077value is stored in a new mortal SV.
3078
3079 void XST_mIV(int pos, IV iv)
3080
21fff326 3081=for hackers
3082Found in file XSUB.h
3083
954c1994 3084=item XST_mNO
3085
3086Place C<&PL_sv_no> into the specified position C<pos> on the
3087stack.
3088
3089 void XST_mNO(int pos)
3090
21fff326 3091=for hackers
3092Found in file XSUB.h
3093
954c1994 3094=item XST_mNV
3095
3096Place a double into the specified position C<pos> on the stack. The value
3097is stored in a new mortal SV.
3098
3099 void XST_mNV(int pos, NV nv)
3100
21fff326 3101=for hackers
3102Found in file XSUB.h
3103
954c1994 3104=item XST_mPV
3105
3106Place a copy of a string into the specified position C<pos> on the stack.
3107The value is stored in a new mortal SV.
3108
3109 void XST_mPV(int pos, char* str)
3110
21fff326 3111=for hackers
3112Found in file XSUB.h
3113
954c1994 3114=item XST_mUNDEF
3115
3116Place C<&PL_sv_undef> into the specified position C<pos> on the
3117stack.
3118
3119 void XST_mUNDEF(int pos)
3120
21fff326 3121=for hackers
3122Found in file XSUB.h
3123
954c1994 3124=item XST_mYES
3125
3126Place C<&PL_sv_yes> into the specified position C<pos> on the
3127stack.
3128
3129 void XST_mYES(int pos)
3130
21fff326 3131=for hackers
3132Found in file XSUB.h
3133
954c1994 3134=item XS_VERSION
3135
3136The version identifier for an XS module. This is usually
3137handled automatically by C<ExtUtils::MakeMaker>. See C<XS_VERSION_BOOTCHECK>.
3138
21fff326 3139=for hackers
3140Found in file XSUB.h
3141
954c1994 3142=item XS_VERSION_BOOTCHECK
3143
3144Macro to verify that a PM module's $VERSION variable matches the XS
3145module's C<XS_VERSION> variable. This is usually handled automatically by
3146C<xsubpp>. See L<perlxs/"The VERSIONCHECK: Keyword">.
3147
3148 XS_VERSION_BOOTCHECK;
3149
21fff326 3150=for hackers
3151Found in file XSUB.h
3152
954c1994 3153=item Zero
3154
3155The XSUB-writer's interface to the C C<memzero> function. The C<dest> is the
3156destination, C<nitems> is the number of items, and C<type> is the type.
3157
3158 void Zero(void* dest, int nitems, type)
3159
21fff326 3160=for hackers
3161Found in file handy.h
3162
954c1994 3163=back
3164
3165=head1 AUTHORS
3166
3167Until May 1997, this document was maintained by Jeff Okamoto
3168<okamoto@corp.hp.com>. It is now maintained as part of Perl itself.
3169
3170With lots of help and suggestions from Dean Roehrich, Malcolm Beattie,
3171Andreas Koenig, Paul Hudson, Ilya Zakharevich, Paul Marquess, Neil
3172Bowers, Matthew Green, Tim Bunce, Spider Boardman, Ulrich Pfeifer,
3173Stephen McCamant, and Gurusamy Sarathy.
3174
3175API Listing originally by Dean Roehrich <roehrich@cray.com>.
3176
3177Updated to be autogenerated from comments in the source by Benjamin Stuhl.
3178
3179=head1 SEE ALSO
3180
3181perlguts(1), perlxs(1), perlxstut(1), perlintern(1)
3182