3 perlapi - autogenerated documentation for the perl public API
7 This file contains the documentation of the perl public API generated by
8 embed.pl, specifically a listing of functions, macros, flags, and variables
9 that may be used by extension writers. The interfaces of any functions that
10 are not listed here are subject to change without notice. For this reason,
11 blindly using functions listed in proto.h is to be avoided when writing
14 Note that all Perl API global variables must be referenced with the C<PL_>
15 prefix. Some macros are provided for compatibility with the older,
16 unadorned names, but this support may be disabled in a future release.
18 The listing is alphabetical, case insensitive.
24 Same as C<av_len()>. Deprecated, use C<av_len()> instead.
33 Clears an array, making it empty. Does not free the memory used by the
43 Pre-extend an array. The C<key> is the index to which the array should be
46 void av_extend(AV* ar, I32 key)
53 Returns the SV at the specified index in the array. The C<key> is the
54 index. If C<lval> is set then the fetch will be part of a store. Check
55 that the return value is non-null before dereferencing it to a C<SV*>.
57 See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for
58 more information on how to use this function on tied arrays.
60 SV** av_fetch(AV* ar, I32 key, I32 lval)
67 Returns the highest index in the array. Returns -1 if the array is
77 Creates a new AV and populates it with a list of SVs. The SVs are copied
78 into the array, so they may be freed after the call to av_make. The new AV
79 will have a reference count of 1.
81 AV* av_make(I32 size, SV** svp)
88 Pops an SV off the end of the array. Returns C<&PL_sv_undef> if the array
98 Pushes an SV onto the end of the array. The array will grow automatically
99 to accommodate the addition.
101 void av_push(AV* ar, SV* val)
108 Shifts an SV off the beginning of the array.
117 Stores an SV in an array. The array index is specified as C<key>. The
118 return value will be NULL if the operation failed or if the value did not
119 need to be actually stored within the array (as in the case of tied
120 arrays). Otherwise it can be dereferenced to get the original C<SV*>. Note
121 that the caller is responsible for suitably incrementing the reference
122 count of C<val> before the call, and decrementing it if the function
125 See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for
126 more information on how to use this function on tied arrays.
128 SV** av_store(AV* ar, I32 key, SV* val)
135 Undefines the array. Frees the memory used by the array itself.
137 void av_undef(AV* ar)
144 Unshift the given number of C<undef> values onto the beginning of the
145 array. The array will grow automatically to accommodate the addition. You
146 must then use C<av_store> to assign values to these new elements.
148 void av_unshift(AV* ar, I32 num)
155 Performs a callback to the specified Perl sub. See L<perlcall>.
157 NOTE: the perl_ form of this function is deprecated.
159 I32 call_argv(const char* sub_name, I32 flags, char** argv)
166 Performs a callback to the specified Perl method. The blessed object must
167 be on the stack. See L<perlcall>.
169 NOTE: the perl_ form of this function is deprecated.
171 I32 call_method(const char* methname, I32 flags)
178 Performs a callback to the specified Perl sub. See L<perlcall>.
180 NOTE: the perl_ form of this function is deprecated.
182 I32 call_pv(const char* sub_name, I32 flags)
189 Performs a callback to the Perl sub whose name is in the SV. See
192 NOTE: the perl_ form of this function is deprecated.
194 I32 call_sv(SV* sv, I32 flags)
201 Variable which is setup by C<xsubpp> to indicate the
202 class name for a C++ XS constructor. This is always a C<char*>. See C<THIS>.
211 The XSUB-writer's interface to the C C<memcpy> function. The C<src> is the
212 source, C<dest> is the destination, C<nitems> is the number of items, and C<type> is
213 the type. May fail on overlapping copies. See also C<Move>.
215 void Copy(void* src, void* dest, int nitems, type)
218 Found in file handy.h
222 This is the XSUB-writer's interface to Perl's C<die> function.
223 Normally use this function the same way you use the C C<printf>
224 function. See C<warn>.
226 If you want to throw an exception object, assign the object to
227 C<$@> and then pass C<Nullch> to croak():
229 errsv = get_sv("@", TRUE);
230 sv_setsv(errsv, exception_object);
233 void croak(const char* pat, ...)
240 Returns the stash of the CV.
249 Declare a stack marker variable, C<mark>, for the XSUB. See C<MARK> and
259 Saves the original stack mark for the XSUB. See C<ORIGMARK>.
268 Declares a local copy of perl's stack pointer for the XSUB, available via
269 the C<SP> macro. See C<SP>.
278 Sets up stack and mark pointers for an XSUB, calling dSP and dMARK. This
279 is usually handled automatically by C<xsubpp>. Declares the C<items>
280 variable to indicate the number of items on the stack.
289 Sets up the C<ix> variable for an XSUB which has aliases. This is usually
290 handled automatically by C<xsubpp>.
299 Opening bracket on a callback. See C<LEAVE> and L<perlcall>.
304 Found in file scope.h
308 Tells Perl to C<eval> the given string and return an SV* result.
310 NOTE: the perl_ form of this function is deprecated.
312 SV* eval_pv(const char* p, I32 croak_on_error)
319 Tells Perl to C<eval> the string in the SV.
321 NOTE: the perl_ form of this function is deprecated.
323 I32 eval_sv(SV* sv, I32 flags)
330 Used to extend the argument stack for an XSUB's return values. Once
331 used, guarantees that there is room for at least C<nitems> to be pushed
334 void EXTEND(SP, int nitems)
341 Analyses the string in order to make fast searches on it using fbm_instr()
342 -- the Boyer-Moore algorithm.
344 void fbm_compile(SV* sv, U32 flags)
351 Returns the location of the SV in the string delimited by C<str> and
352 C<strend>. It returns C<Nullch> if the string can't be found. The C<sv>
353 does not have to be fbm_compiled, but the search will not be as fast
356 char* fbm_instr(unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags)
363 Closing bracket for temporaries on a callback. See C<SAVETMPS> and
369 Found in file scope.h
373 Returns the AV of the specified Perl array. If C<create> is set and the
374 Perl variable does not exist then it will be created. If C<create> is not
375 set and the variable does not exist then NULL is returned.
377 NOTE: the perl_ form of this function is deprecated.
379 AV* get_av(const char* name, I32 create)
386 Returns the CV of the specified Perl subroutine. If C<create> is set and
387 the Perl subroutine does not exist then it will be declared (which has the
388 same effect as saying C<sub name;>). If C<create> is not set and the
389 subroutine does not exist then NULL is returned.
391 NOTE: the perl_ form of this function is deprecated.
393 CV* get_cv(const char* name, I32 create)
400 Returns the HV of the specified Perl hash. If C<create> is set and the
401 Perl variable does not exist then it will be created. If C<create> is not
402 set and the variable does not exist then NULL is returned.
404 NOTE: the perl_ form of this function is deprecated.
406 HV* get_hv(const char* name, I32 create)
413 Returns the SV of the specified Perl scalar. If C<create> is set and the
414 Perl variable does not exist then it will be created. If C<create> is not
415 set and the variable does not exist then NULL is returned.
417 NOTE: the perl_ form of this function is deprecated.
419 SV* get_sv(const char* name, I32 create)
426 A backward-compatible version of C<GIMME_V> which can only return
427 C<G_SCALAR> or C<G_ARRAY>; in a void context, it returns C<G_SCALAR>.
428 Deprecated. Use C<GIMME_V> instead.
437 The XSUB-writer's equivalent to Perl's C<wantarray>. Returns C<G_VOID>,
438 C<G_SCALAR> or C<G_ARRAY> for void, scalar or array context,
448 Return the SV from the GV.
457 Returns the glob with the given C<name> and a defined subroutine or
458 C<NULL>. The glob lives in the given C<stash>, or in the stashes
459 accessible via @ISA and @UNIVERSAL.
461 The argument C<level> should be either 0 or -1. If C<level==0>, as a
462 side-effect creates a glob with the given C<name> in the given C<stash>
463 which in the case of success contains an alias for the subroutine, and sets
464 up caching info for this glob. Similarly for all the searched stashes.
466 This function grants C<"SUPER"> token as a postfix of the stash name. The
467 GV returned from C<gv_fetchmeth> may be a method cache entry, which is not
468 visible to Perl code. So when calling C<call_sv>, you should not use
469 the GV directly; instead, you should use the method's CV, which can be
470 obtained from the GV with the C<GvCV> macro.
472 GV* gv_fetchmeth(HV* stash, const char* name, STRLEN len, I32 level)
479 See L<gv_fetchmethod_autoload>.
481 GV* gv_fetchmethod(HV* stash, const char* name)
486 =item gv_fetchmethod_autoload
488 Returns the glob which contains the subroutine to call to invoke the method
489 on the C<stash>. In fact in the presence of autoloading this may be the
490 glob for "AUTOLOAD". In this case the corresponding variable $AUTOLOAD is
493 The third parameter of C<gv_fetchmethod_autoload> determines whether
494 AUTOLOAD lookup is performed if the given method is not present: non-zero
495 means yes, look for AUTOLOAD; zero means no, don't look for AUTOLOAD.
496 Calling C<gv_fetchmethod> is equivalent to calling C<gv_fetchmethod_autoload>
497 with a non-zero C<autoload> parameter.
499 These functions grant C<"SUPER"> token as a prefix of the method name. Note
500 that if you want to keep the returned glob for a long time, you need to
501 check for it being "AUTOLOAD", since at the later time the call may load a
502 different subroutine due to $AUTOLOAD changing its value. Use the glob
503 created via a side effect to do this.
505 These functions have the same side-effects and as C<gv_fetchmeth> with
506 C<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
508 C<call_sv> apply equally to these functions.
510 GV* gv_fetchmethod_autoload(HV* stash, const char* name, I32 autoload)
517 Returns a pointer to the stash for a specified package. C<name> should
518 be a valid UTF-8 string. If C<create> is set then the package will be
519 created if it does not already exist. If C<create> is not set and the
520 package does not exist then NULL is returned.
522 HV* gv_stashpv(const char* name, I32 create)
529 Returns a pointer to the stash for a specified package, which must be a
530 valid UTF-8 string. See C<gv_stashpv>.
532 HV* gv_stashsv(SV* sv, I32 create)
539 Used to indicate array context. See C<GIMME_V>, C<GIMME> and
547 Indicates that arguments returned from a callback should be discarded. See
555 Used to force a Perl C<eval> wrapper around a callback. See
563 Indicates that no arguments are being sent to a callback. See
571 Used to indicate scalar context. See C<GIMME_V>, C<GIMME>, and
579 Used to indicate void context. See C<GIMME_V> and L<perlcall>.
586 This flag, used in the length slot of hash entries and magic structures,
587 specifies the structure contains a C<SV*> pointer where a C<char*> pointer
588 is to be expected. (For information only--not to be used).
595 Returns the computed hash stored in the hash entry.
604 Returns the actual pointer stored in the key slot of the hash entry. The
605 pointer may be either C<char*> or C<SV*>, depending on the value of
606 C<HeKLEN()>. Can be assigned to. The C<HePV()> or C<HeSVKEY()> macros are
607 usually preferable for finding the value of a key.
616 If this is negative, and amounts to C<HEf_SVKEY>, it indicates the entry
617 holds an C<SV*> key. Otherwise, holds the actual length of the key. Can
618 be assigned to. The C<HePV()> macro is usually preferable for finding key
621 STRLEN HeKLEN(HE* he)
628 Returns the key slot of the hash entry as a C<char*> value, doing any
629 necessary dereferencing of possibly C<SV*> keys. The length of the string
630 is placed in C<len> (this is a macro, so do I<not> use C<&len>). If you do
631 not care about what the length of the key is, you may use the global
632 variable C<PL_na>, though this is rather less efficient than using a local
633 variable. Remember though, that hash keys in perl are free to contain
634 embedded nulls, so using C<strlen()> or similar is not a good way to find
635 the length of hash keys. This is very similar to the C<SvPV()> macro
636 described elsewhere in this document.
638 char* HePV(HE* he, STRLEN len)
645 Returns the key as an C<SV*>, or C<Nullsv> if the hash entry does not
646 contain an C<SV*> key.
655 Returns the key as an C<SV*>. Will create and return a temporary mortal
656 C<SV*> if the hash entry contains only a C<char*> key.
658 SV* HeSVKEY_force(HE* he)
665 Sets the key to a given C<SV*>, taking care to set the appropriate flags to
666 indicate the presence of an C<SV*> key, and returns the same
669 SV* HeSVKEY_set(HE* he, SV* sv)
676 Returns the value slot (type C<SV*>) stored in the hash entry.
685 Returns the package name of a stash. See C<SvSTASH>, C<CvSTASH>.
687 char* HvNAME(HV* stash)
694 Clears a hash, making it empty.
696 void hv_clear(HV* tb)
703 Deletes a key/value pair in the hash. The value SV is removed from the
704 hash and returned to the caller. The C<klen> is the length of the key.
705 The C<flags> value will normally be zero; if set to G_DISCARD then NULL
708 SV* hv_delete(HV* tb, const char* key, U32 klen, I32 flags)
715 Deletes a key/value pair in the hash. The value SV is removed from the
716 hash and returned to the caller. The C<flags> value will normally be zero;
717 if set to G_DISCARD then NULL will be returned. C<hash> can be a valid
718 precomputed hash value, or 0 to ask for it to be computed.
720 SV* hv_delete_ent(HV* tb, SV* key, I32 flags, U32 hash)
727 Returns a boolean indicating whether the specified hash key exists. The
728 C<klen> is the length of the key.
730 bool hv_exists(HV* tb, const char* key, U32 klen)
737 Returns a boolean indicating whether the specified hash key exists. C<hash>
738 can be a valid precomputed hash value, or 0 to ask for it to be
741 bool hv_exists_ent(HV* tb, SV* key, U32 hash)
748 Returns the SV which corresponds to the specified key in the hash. The
749 C<klen> is the length of the key. If C<lval> is set then the fetch will be
750 part of a store. Check that the return value is non-null before
751 dereferencing it to a C<SV*>.
753 See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
754 information on how to use this function on tied hashes.
756 SV** hv_fetch(HV* tb, const char* key, U32 klen, I32 lval)
763 Returns the hash entry which corresponds to the specified key in the hash.
764 C<hash> must be a valid precomputed hash number for the given C<key>, or 0
765 if you want the function to compute it. IF C<lval> is set then the fetch
766 will be part of a store. Make sure the return value is non-null before
767 accessing it. The return value when C<tb> is a tied hash is a pointer to a
768 static location, so be sure to make a copy of the structure if you need to
771 See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
772 information on how to use this function on tied hashes.
774 HE* hv_fetch_ent(HV* tb, SV* key, I32 lval, U32 hash)
781 Prepares a starting point to traverse a hash table. Returns the number of
782 keys in the hash (i.e. the same as C<HvKEYS(tb)>). The return value is
783 currently only meaningful for hashes without tie magic.
785 NOTE: Before version 5.004_65, C<hv_iterinit> used to return the number of
786 hash buckets that happen to be in use. If you still need that esoteric
787 value, you can get it through the macro C<HvFILL(tb)>.
789 I32 hv_iterinit(HV* tb)
796 Returns the key from the current position of the hash iterator. See
799 char* hv_iterkey(HE* entry, I32* retlen)
806 Returns the key as an C<SV*> from the current position of the hash
807 iterator. The return value will always be a mortal copy of the key. Also
810 SV* hv_iterkeysv(HE* entry)
817 Returns entries from a hash iterator. See C<hv_iterinit>.
819 HE* hv_iternext(HV* tb)
826 Performs an C<hv_iternext>, C<hv_iterkey>, and C<hv_iterval> in one
829 SV* hv_iternextsv(HV* hv, char** key, I32* retlen)
836 Returns the value from the current position of the hash iterator. See
839 SV* hv_iterval(HV* tb, HE* entry)
846 Adds magic to a hash. See C<sv_magic>.
848 void hv_magic(HV* hv, GV* gv, int how)
855 Stores an SV in a hash. The hash key is specified as C<key> and C<klen> is
856 the length of the key. The C<hash> parameter is the precomputed hash
857 value; if it is zero then Perl will compute it. The return value will be
858 NULL if the operation failed or if the value did not need to be actually
859 stored within the hash (as in the case of tied hashes). Otherwise it can
860 be dereferenced to get the original C<SV*>. Note that the caller is
861 responsible for suitably incrementing the reference count of C<val> before
862 the call, and decrementing it if the function returned NULL.
864 See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
865 information on how to use this function on tied hashes.
867 SV** hv_store(HV* tb, const char* key, U32 klen, SV* val, U32 hash)
874 Stores C<val> in a hash. The hash key is specified as C<key>. The C<hash>
875 parameter is the precomputed hash value; if it is zero then Perl will
876 compute it. The return value is the new hash entry so created. It will be
877 NULL if the operation failed or if the value did not need to be actually
878 stored within the hash (as in the case of tied hashes). Otherwise the
879 contents of the return value can be accessed using the C<He???> macros
880 described here. Note that the caller is responsible for suitably
881 incrementing the reference count of C<val> before the call, and
882 decrementing it if the function returned NULL.
884 See L<perlguts/"Understanding the Magic of Tied Hashes and Arrays"> for more
885 information on how to use this function on tied hashes.
887 HE* hv_store_ent(HV* tb, SV* key, SV* val, U32 hash)
896 void hv_undef(HV* tb)
903 Returns a boolean indicating whether the C C<char> is an ASCII alphanumeric
904 character (including underscore) or digit.
906 bool isALNUM(char ch)
909 Found in file handy.h
913 Returns a boolean indicating whether the C C<char> is an ASCII alphabetic
916 bool isALPHA(char ch)
919 Found in file handy.h
923 Returns a boolean indicating whether the C C<char> is an ASCII
926 bool isDIGIT(char ch)
929 Found in file handy.h
933 Returns a boolean indicating whether the C C<char> is a lowercase
936 bool isLOWER(char ch)
939 Found in file handy.h
943 Returns a boolean indicating whether the C C<char> is whitespace.
945 bool isSPACE(char ch)
948 Found in file handy.h
952 Returns a boolean indicating whether the C C<char> is an uppercase
955 bool isUPPER(char ch)
958 Found in file handy.h
962 Variable which is setup by C<xsubpp> to indicate the number of
963 items on the stack. See L<perlxs/"Variable-length Parameter Lists">.
972 Variable which is setup by C<xsubpp> to indicate which of an
973 XSUB's aliases was used to invoke it. See L<perlxs/"The ALIAS: Keyword">.
982 Closing bracket on a callback. See C<ENTER> and L<perlcall>.
987 Found in file scope.h
989 =item looks_like_number
991 Test if an the content of an SV looks like a number (or is a
994 I32 looks_like_number(SV* sv)
1001 Stack marker variable for the XSUB. See C<dMARK>.
1008 Clear something magical that the SV represents. See C<sv_magic>.
1010 int mg_clear(SV* sv)
1017 Copies the magic from one SV to another. See C<sv_magic>.
1019 int mg_copy(SV* sv, SV* nsv, const char* key, I32 klen)
1026 Finds the magic pointer for type matching the SV. See C<sv_magic>.
1028 MAGIC* mg_find(SV* sv, int type)
1035 Free any magic storage used by the SV. See C<sv_magic>.
1044 Do magic after a value is retrieved from the SV. See C<sv_magic>.
1053 Report on the SV's length. See C<sv_magic>.
1055 U32 mg_length(SV* sv)
1062 Turns on the magical status of an SV. See C<sv_magic>.
1064 void mg_magical(SV* sv)
1071 Do magic after a value is assigned to the SV. See C<sv_magic>.
1080 The XSUB-writer's interface to the C C<memmove> function. The C<src> is the
1081 source, C<dest> is the destination, C<nitems> is the number of items, and C<type> is
1082 the type. Can do overlapping moves. See also C<Copy>.
1084 void Move(void* src, void* dest, int nitems, type)
1087 Found in file handy.h
1091 The XSUB-writer's interface to the C C<malloc> function.
1093 void New(int id, void* ptr, int nitems, type)
1096 Found in file handy.h
1100 Creates a new AV. The reference count is set to 1.
1109 The XSUB-writer's interface to the C C<malloc> function, with
1112 void Newc(int id, void* ptr, int nitems, type, cast)
1115 Found in file handy.h
1119 Creates a constant sub equivalent to Perl C<sub FOO () { 123 }> which is
1120 eligible for inlining at compile-time.
1122 void newCONSTSUB(HV* stash, char* name, SV* sv)
1129 Creates a new HV. The reference count is set to 1.
1138 Creates an RV wrapper for an SV. The reference count for the original SV is
1141 SV* newRV_inc(SV* sv)
1148 Creates an RV wrapper for an SV. The reference count for the original
1149 SV is B<not> incremented.
1151 SV* newRV_noinc(SV *sv)
1158 Creates a new SV. A non-zero C<len> parameter indicates the number of
1159 bytes of preallocated string space the SV should have. An extra byte for a
1160 tailing NUL is also reserved. (SvPOK is not set for the SV even if string
1161 space is allocated.) The reference count for the new SV is set to 1.
1162 C<id> is an integer id between 0 and 1299 (used to identify leaks).
1164 SV* NEWSV(int id, STRLEN len)
1167 Found in file handy.h
1171 Creates a new SV and copies an integer into it. The reference count for the
1181 Creates a new SV and copies a floating point value into it.
1182 The reference count for the SV is set to 1.
1191 Creates a new SV and copies a string into it. The reference count for the
1192 SV is set to 1. If C<len> is zero, Perl will compute the length using
1193 strlen(). For efficiency, consider using C<newSVpvn> instead.
1195 SV* newSVpv(const char* s, STRLEN len)
1202 Creates a new SV an initialize it with the string formatted like
1205 SV* newSVpvf(const char* pat, ...)
1212 Creates a new SV and copies a string into it. The reference count for the
1213 SV is set to 1. Note that if C<len> is zero, Perl will create a zero length
1214 string. You are responsible for ensuring that the source string is at least
1217 SV* newSVpvn(const char* s, STRLEN len)
1224 Creates a new SV for the RV, C<rv>, to point to. If C<rv> is not an RV then
1225 it will be upgraded to one. If C<classname> is non-null then the new SV will
1226 be blessed in the specified package. The new SV is returned and its
1227 reference count is 1.
1229 SV* newSVrv(SV* rv, const char* classname)
1236 Creates a new SV which is an exact duplicate of the original SV.
1238 SV* newSVsv(SV* old)
1245 Creates a new SV and copies an unsigned integer into it.
1246 The reference count for the SV is set to 1.
1255 Used by C<xsubpp> to hook up XSUBs as Perl subs.
1262 Used by C<xsubpp> to hook up XSUBs as Perl subs. Adds Perl prototypes to
1266 Found in file XSUB.h
1270 The XSUB-writer's interface to the C C<malloc> function. The allocated
1271 memory is zeroed with C<memzero>.
1273 void Newz(int id, void* ptr, int nitems, type)
1276 Found in file handy.h
1287 Null character pointer.
1290 Found in file handy.h
1311 Found in file handy.h
1315 The original stack mark for the XSUB. See C<dORIGMARK>.
1322 Allocates a new Perl interpreter. See L<perlembed>.
1324 PerlInterpreter* perl_alloc()
1327 Found in file perl.c
1329 =item perl_construct
1331 Initializes a new Perl interpreter. See L<perlembed>.
1333 void perl_construct(PerlInterpreter* interp)
1336 Found in file perl.c
1340 Shuts down a Perl interpreter. See L<perlembed>.
1342 void perl_destruct(PerlInterpreter* interp)
1345 Found in file perl.c
1349 Releases a Perl interpreter. See L<perlembed>.
1351 void perl_free(PerlInterpreter* interp)
1354 Found in file perl.c
1358 Tells a Perl interpreter to parse a Perl script. See L<perlembed>.
1360 int perl_parse(PerlInterpreter* interp, XSINIT_t xsinit, int argc, char** argv, char** env)
1363 Found in file perl.c
1367 Tells a Perl interpreter to run. See L<perlembed>.
1369 int perl_run(PerlInterpreter* interp)
1372 Found in file perl.c
1376 When Perl is run in debugging mode, with the B<-d> switch, this SV is a
1377 boolean which indicates whether subs are being single-stepped.
1378 Single-stepping is automatically turned on after every step. This is the C
1379 variable which corresponds to Perl's $DB::single variable. See
1385 Found in file intrpvar.h
1389 When Perl is run in debugging mode, with the B<-d> switch, this GV contains
1390 the SV which holds the name of the sub being debugged. This is the C
1391 variable which corresponds to Perl's $DB::sub variable. See
1397 Found in file intrpvar.h
1401 Trace variable used when Perl is run in debugging mode, with the B<-d>
1402 switch. This is the C variable which corresponds to Perl's $DB::trace
1403 variable. See C<PL_DBsingle>.
1408 Found in file intrpvar.h
1412 The C variable which corresponds to Perl's $^W warning variable.
1417 Found in file intrpvar.h
1421 C<PL_modglobal> is a general purpose, interpreter global HV for use by
1422 extensions that need to keep information on a per-interpreter basis.
1423 In a pinch, it can also be used as a symbol table for extensions
1424 to share data among each other. It is a good idea to use keys
1425 prefixed by the package name of the extension that owns the data.
1430 Found in file intrpvar.h
1434 A convenience variable which is typically used with C<SvPV> when one
1435 doesn't care about the length of the string. It is usually more efficient
1436 to either declare a local variable and use that instead or to use the
1437 C<SvPV_nolen> macro.
1442 Found in file thrdvar.h
1446 This is the C<false> SV. See C<PL_sv_yes>. Always refer to this as
1452 Found in file intrpvar.h
1456 This is the C<undef> SV. Always refer to this as C<&PL_sv_undef>.
1461 Found in file intrpvar.h
1465 This is the C<true> SV. See C<PL_sv_no>. Always refer to this as
1471 Found in file intrpvar.h
1475 Pops an integer off the stack.
1484 Pops a long off the stack.
1493 Pops a double off the stack.
1502 Pops a string off the stack.
1511 Pops an SV off the stack.
1520 Push an integer onto the stack. The stack must have room for this element.
1521 Handles 'set' magic. See C<XPUSHi>.
1530 Opening bracket for arguments on a callback. See C<PUTBACK> and
1540 Push a double onto the stack. The stack must have room for this element.
1541 Handles 'set' magic. See C<XPUSHn>.
1550 Push a string onto the stack. The stack must have room for this element.
1551 The C<len> indicates the length of the string. Handles 'set' magic. See
1554 void PUSHp(char* str, STRLEN len)
1561 Push an SV onto the stack. The stack must have room for this element.
1562 Does not handle 'set' magic. See C<XPUSHs>.
1571 Push an unsigned integer onto the stack. The stack must have room for this
1572 element. See C<XPUSHu>.
1581 Closing bracket for XSUB arguments. This is usually handled by C<xsubpp>.
1582 See C<PUSHMARK> and L<perlcall> for other uses.
1591 The XSUB-writer's interface to the C C<realloc> function.
1593 void Renew(void* ptr, int nitems, type)
1596 Found in file handy.h
1600 The XSUB-writer's interface to the C C<realloc> function, with
1603 void Renewc(void* ptr, int nitems, type, cast)
1606 Found in file handy.h
1610 Tells Perl to C<require> a module.
1612 NOTE: the perl_ form of this function is deprecated.
1614 void require_pv(const char* pv)
1617 Found in file perl.c
1621 Variable which is setup by C<xsubpp> to hold the return value for an
1622 XSUB. This is always the proper type for the XSUB. See
1623 L<perlxs/"The RETVAL Variable">.
1628 Found in file XSUB.h
1632 The XSUB-writer's interface to the C C<free> function.
1634 void Safefree(void* src, void* dest, int nitems, type)
1637 Found in file handy.h
1641 Copy a string to a safe spot. This does not use an SV.
1643 char* savepv(const char* sv)
1646 Found in file util.c
1650 Copy a string to a safe spot. The C<len> indicates number of bytes to
1651 copy. This does not use an SV.
1653 char* savepvn(const char* sv, I32 len)
1656 Found in file util.c
1660 Opening bracket for temporaries on a callback. See C<FREETMPS> and
1666 Found in file scope.h
1670 Stack pointer. This is usually handled by C<xsubpp>. See C<dSP> and
1678 Refetch the stack pointer. Used after a callback. See L<perlcall>.
1687 Used to access elements on the XSUB's stack.
1692 Found in file XSUB.h
1696 Test two strings to see if they are equal. Returns true or false.
1698 bool strEQ(char* s1, char* s2)
1701 Found in file handy.h
1705 Test two strings to see if the first, C<s1>, is greater than or equal to
1706 the second, C<s2>. Returns true or false.
1708 bool strGE(char* s1, char* s2)
1711 Found in file handy.h
1715 Test two strings to see if the first, C<s1>, is greater than the second,
1716 C<s2>. Returns true or false.
1718 bool strGT(char* s1, char* s2)
1721 Found in file handy.h
1725 Test two strings to see if the first, C<s1>, is less than or equal to the
1726 second, C<s2>. Returns true or false.
1728 bool strLE(char* s1, char* s2)
1731 Found in file handy.h
1735 Test two strings to see if the first, C<s1>, is less than the second,
1736 C<s2>. Returns true or false.
1738 bool strLT(char* s1, char* s2)
1741 Found in file handy.h
1745 Test two strings to see if they are different. Returns true or
1748 bool strNE(char* s1, char* s2)
1751 Found in file handy.h
1755 Test two strings to see if they are equal. The C<len> parameter indicates
1756 the number of bytes to compare. Returns true or false. (A wrapper for
1759 bool strnEQ(char* s1, char* s2, STRLEN len)
1762 Found in file handy.h
1766 Test two strings to see if they are different. The C<len> parameter
1767 indicates the number of bytes to compare. Returns true or false. (A
1768 wrapper for C<strncmp>).
1770 bool strnNE(char* s1, char* s2, STRLEN len)
1773 Found in file handy.h
1777 This is an architecture-independent macro to copy one structure to another.
1779 void StructCopy(type src, type dest, type)
1782 Found in file handy.h
1786 Returns the length of the string which is in the SV. See C<SvLEN>.
1788 STRLEN SvCUR(SV* sv)
1795 Set the length of the string which is in the SV. See C<SvCUR>.
1797 void SvCUR_set(SV* sv, STRLEN len)
1804 Returns a pointer to the last character in the string which is in the SV.
1805 See C<SvCUR>. Access the character as *(SvEND(sv)).
1814 Invokes C<mg_get> on an SV if it has 'get' magic. This macro evaluates its
1815 argument more than once.
1817 void SvGETMAGIC(SV* sv)
1824 Expands the character buffer in the SV so that it has room for the
1825 indicated number of bytes (remember to reserve space for an extra trailing
1826 NUL character). Calls C<sv_grow> to perform the expansion if necessary.
1827 Returns a pointer to the character buffer.
1829 void SvGROW(SV* sv, STRLEN len)
1836 Returns a boolean indicating whether the SV contains an integer.
1845 Returns a boolean indicating whether the SV contains an integer. Checks
1846 the B<private> setting. Use C<SvIOK>.
1855 Unsets the IV status of an SV.
1857 void SvIOK_off(SV* sv)
1864 Tells an SV that it is an integer.
1866 void SvIOK_on(SV* sv)
1873 Tells an SV that it is an integer and disables all other OK bits.
1875 void SvIOK_only(SV* sv)
1882 Coerces the given SV to an integer and returns it.
1891 Returns the integer which is stored in the SV, assuming SvIOK is
1901 Returns the size of the string buffer in the SV. See C<SvCUR>.
1903 STRLEN SvLEN(SV* sv)
1910 Aquires an internal mutex for a SV. Used to make sure multiple threads
1911 don't stomp on the guts of an SV at the same time
1920 Returns a boolean indicating whether the SV contains a number, integer or
1930 Returns a boolean indicating whether the SV contains a number, integer or
1931 double. Checks the B<private> setting. Use C<SvNIOK>.
1933 bool SvNIOKp(SV* sv)
1940 Unsets the NV/IV status of an SV.
1942 void SvNIOK_off(SV* sv)
1949 Returns a boolean indicating whether the SV contains a double.
1958 Returns a boolean indicating whether the SV contains a double. Checks the
1959 B<private> setting. Use C<SvNOK>.
1968 Unsets the NV status of an SV.
1970 void SvNOK_off(SV* sv)
1977 Tells an SV that it is a double.
1979 void SvNOK_on(SV* sv)
1986 Tells an SV that it is a double and disables all other OK bits.
1988 void SvNOK_only(SV* sv)
1995 Coerce the given SV to a double and return it.
2004 Returns the double which is stored in the SV, assuming SvNOK is
2014 Returns a boolean indicating whether the value is an SV.
2023 Returns a boolean indicating whether the SvIVX is a valid offset value for
2024 the SvPVX. This hack is used internally to speed up removal of characters
2025 from the beginning of a SvPV. When SvOOK is true, then the start of the
2026 allocated string buffer is really (SvPVX - SvIVX).
2035 Returns a boolean indicating whether the SV contains a character
2045 Returns a boolean indicating whether the SV contains a character string.
2046 Checks the B<private> setting. Use C<SvPOK>.
2055 Unsets the PV status of an SV.
2057 void SvPOK_off(SV* sv)
2064 Tells an SV that it is a string.
2066 void SvPOK_on(SV* sv)
2073 Tells an SV that it is a string and disables all other OK bits.
2075 void SvPOK_only(SV* sv)
2082 Returns a pointer to the string in the SV, or a stringified form of the SV
2083 if the SV does not contain a string. Handles 'get' magic.
2085 char* SvPV(SV* sv, STRLEN len)
2092 Returns a pointer to the string in the SV. The SV must contain a
2102 Like <SvPV> but will force the SV into becoming a string (SvPOK). You want
2103 force if you are going to update the SvPVX directly.
2105 char* SvPV_force(SV* sv, STRLEN len)
2112 Returns a pointer to the string in the SV, or a stringified form of the SV
2113 if the SV does not contain a string. Handles 'get' magic.
2115 char* SvPV_nolen(SV* sv)
2122 Returns the value of the object's reference count.
2124 U32 SvREFCNT(SV* sv)
2131 Decrements the reference count of the given SV.
2133 void SvREFCNT_dec(SV* sv)
2140 Increments the reference count of the given SV.
2142 SV* SvREFCNT_inc(SV* sv)
2149 Tests if the SV is an RV.
2158 Unsets the RV status of an SV.
2160 void SvROK_off(SV* sv)
2167 Tells an SV that it is an RV.
2169 void SvROK_on(SV* sv)
2176 Dereferences an RV to return the SV.
2185 Invokes C<mg_set> on an SV if it has 'set' magic. This macro evaluates its
2186 argument more than once.
2188 void SvSETMAGIC(SV* sv)
2195 Calls C<sv_setsv> if dsv is not the same as ssv. May evaluate arguments
2198 void SvSetSV(SV* dsb, SV* ssv)
2203 =item SvSetSV_nosteal
2205 Calls a non-destructive version of C<sv_setsv> if dsv is not the same as
2206 ssv. May evaluate arguments more than once.
2208 void SvSetSV_nosteal(SV* dsv, SV* ssv)
2215 Returns the stash of the SV.
2224 Taints an SV if tainting is enabled
2226 void SvTAINT(SV* sv)
2233 Checks to see if an SV is tainted. Returns TRUE if it is, FALSE if
2236 bool SvTAINTED(SV* sv)
2243 Untaints an SV. Be I<very> careful with this routine, as it short-circuits
2244 some of Perl's fundamental security features. XS module authors should not
2245 use this function unless they fully understand all the implications of
2246 unconditionally untainting the value. Untainting should be done in the
2247 standard perl fashion, via a carefully crafted regexp, rather than directly
2248 untainting variables.
2250 void SvTAINTED_off(SV* sv)
2257 Marks an SV as tainted.
2259 void SvTAINTED_on(SV* sv)
2266 Returns a boolean indicating whether Perl would evaluate the SV as true or
2267 false, defined or undefined. Does not handle 'get' magic.
2276 Returns the type of the SV. See C<svtype>.
2278 svtype SvTYPE(SV* sv)
2285 An enum of flags for Perl types. These are found in the file B<sv.h>
2286 in the C<svtype> enum. Test these flags with the C<SvTYPE> macro.
2293 Integer type flag for scalars. See C<svtype>.
2300 Double type flag for scalars. See C<svtype>.
2307 Pointer type flag for scalars. See C<svtype>.
2314 Type flag for arrays. See C<svtype>.
2321 Type flag for code refs. See C<svtype>.
2328 Type flag for hashes. See C<svtype>.
2335 Type flag for blessed scalars. See C<svtype>.
2342 Release the internal mutex for an SV.
2344 void SvUNLOCK(SV* sv)
2351 Used to upgrade an SV to a more complex form. Uses C<sv_upgrade> to
2352 perform the upgrade if necessary. See C<svtype>.
2354 void SvUPGRADE(SV* sv, svtype type)
2361 Coerces the given SV to an unsigned integer and returns it.
2370 Returns the unsigned integer which is stored in the SV, assuming SvIOK is
2380 Marks an SV as mortal. The SV will be destroyed when the current context
2383 SV* sv_2mortal(SV* sv)
2390 Blesses an SV into a specified package. The SV must be an RV. The package
2391 must be designated by its stash (see C<gv_stashpv()>). The reference count
2392 of the SV is unaffected.
2394 SV* sv_bless(SV* sv, HV* stash)
2401 Concatenates the string onto the end of the string which is in the SV.
2402 Handles 'get' magic, but not 'set' magic. See C<sv_catpv_mg>.
2404 void sv_catpv(SV* sv, const char* ptr)
2411 Processes its arguments like C<sprintf> and appends the formatted output
2412 to an SV. Handles 'get' magic, but not 'set' magic. C<SvSETMAGIC()> must
2413 typically be called after calling this function to handle 'set' magic.
2415 void sv_catpvf(SV* sv, const char* pat, ...)
2422 Like C<sv_catpvf>, but also handles 'set' magic.
2424 void sv_catpvf_mg(SV *sv, const char* pat, ...)
2431 Concatenates the string onto the end of the string which is in the SV. The
2432 C<len> indicates number of bytes to copy. Handles 'get' magic, but not
2433 'set' magic. See C<sv_catpvn_mg>.
2435 void sv_catpvn(SV* sv, const char* ptr, STRLEN len)
2442 Like C<sv_catpvn>, but also handles 'set' magic.
2444 void sv_catpvn_mg(SV *sv, const char *ptr, STRLEN len)
2451 Like C<sv_catpv>, but also handles 'set' magic.
2453 void sv_catpv_mg(SV *sv, const char *ptr)
2460 Concatenates the string from SV C<ssv> onto the end of the string in SV
2461 C<dsv>. Handles 'get' magic, but not 'set' magic. See C<sv_catsv_mg>.
2463 void sv_catsv(SV* dsv, SV* ssv)
2470 Like C<sv_catsv>, but also handles 'set' magic.
2472 void sv_catsv_mg(SV *dstr, SV *sstr)
2479 Efficient removal of characters from the beginning of the string buffer.
2480 SvPOK(sv) must be true and the C<ptr> must be a pointer to somewhere inside
2481 the string buffer. The C<ptr> becomes the first character of the adjusted
2484 void sv_chop(SV* sv, char* ptr)
2491 Compares the strings in two SVs. Returns -1, 0, or 1 indicating whether the
2492 string in C<sv1> is less than, equal to, or greater than the string in
2495 I32 sv_cmp(SV* sv1, SV* sv2)
2502 Auto-decrement of the value in the SV.
2509 =item sv_derived_from
2511 Returns a boolean indicating whether the SV is derived from the specified
2512 class. This is the function that implements C<UNIVERSAL::isa>. It works
2513 for class names as well as for objects.
2515 bool sv_derived_from(SV* sv, const char* name)
2518 Found in file universal.c
2522 Returns a boolean indicating whether the strings in the two SVs are
2525 I32 sv_eq(SV* sv1, SV* sv2)
2532 Expands the character buffer in the SV. This will use C<sv_unref> and will
2533 upgrade the SV to C<SVt_PV>. Returns a pointer to the character buffer.
2536 char* sv_grow(SV* sv, STRLEN newlen)
2543 Auto-increment of the value in the SV.
2552 Inserts a string at the specified offset/length within the SV. Similar to
2553 the Perl substr() function.
2555 void sv_insert(SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen)
2562 Returns a boolean indicating whether the SV is blessed into the specified
2563 class. This does not check for subtypes; use C<sv_derived_from> to verify
2564 an inheritance relationship.
2566 int sv_isa(SV* sv, const char* name)
2573 Returns a boolean indicating whether the SV is an RV pointing to a blessed
2574 object. If the SV is not an RV, or if the object is not blessed, then this
2577 int sv_isobject(SV* sv)
2584 Returns the length of the string in the SV. See also C<SvCUR>.
2586 STRLEN sv_len(SV* sv)
2593 Adds magic to an SV.
2595 void sv_magic(SV* sv, SV* obj, int how, const char* name, I32 namlen)
2602 Creates a new SV which is a copy of the original SV. The new SV is marked
2605 SV* sv_mortalcopy(SV* oldsv)
2612 Creates a new SV which is mortal. The reference count of the SV is set to 1.
2621 Copies an integer into the given SV. Does not handle 'set' magic. See
2624 void sv_setiv(SV* sv, IV num)
2631 Like C<sv_setiv>, but also handles 'set' magic.
2633 void sv_setiv_mg(SV *sv, IV i)
2640 Copies a double into the given SV. Does not handle 'set' magic. See
2643 void sv_setnv(SV* sv, NV num)
2650 Like C<sv_setnv>, but also handles 'set' magic.
2652 void sv_setnv_mg(SV *sv, NV num)
2659 Copies a string into an SV. The string must be null-terminated. Does not
2660 handle 'set' magic. See C<sv_setpv_mg>.
2662 void sv_setpv(SV* sv, const char* ptr)
2669 Processes its arguments like C<sprintf> and sets an SV to the formatted
2670 output. Does not handle 'set' magic. See C<sv_setpvf_mg>.
2672 void sv_setpvf(SV* sv, const char* pat, ...)
2679 Like C<sv_setpvf>, but also handles 'set' magic.
2681 void sv_setpvf_mg(SV *sv, const char* pat, ...)
2688 Copies an integer into the given SV, also updating its string value.
2689 Does not handle 'set' magic. See C<sv_setpviv_mg>.
2691 void sv_setpviv(SV* sv, IV num)
2698 Like C<sv_setpviv>, but also handles 'set' magic.
2700 void sv_setpviv_mg(SV *sv, IV iv)
2707 Copies a string into an SV. The C<len> parameter indicates the number of
2708 bytes to be copied. Does not handle 'set' magic. See C<sv_setpvn_mg>.
2710 void sv_setpvn(SV* sv, const char* ptr, STRLEN len)
2717 Like C<sv_setpvn>, but also handles 'set' magic.
2719 void sv_setpvn_mg(SV *sv, const char *ptr, STRLEN len)
2726 Like C<sv_setpv>, but also handles 'set' magic.
2728 void sv_setpv_mg(SV *sv, const char *ptr)
2735 Copies an integer into a new SV, optionally blessing the SV. The C<rv>
2736 argument will be upgraded to an RV. That RV will be modified to point to
2737 the new SV. The C<classname> argument indicates the package for the
2738 blessing. Set C<classname> to C<Nullch> to avoid the blessing. The new SV
2739 will be returned and will have a reference count of 1.
2741 SV* sv_setref_iv(SV* rv, const char* classname, IV iv)
2748 Copies a double into a new SV, optionally blessing the SV. The C<rv>
2749 argument will be upgraded to an RV. That RV will be modified to point to
2750 the new SV. The C<classname> argument indicates the package for the
2751 blessing. Set C<classname> to C<Nullch> to avoid the blessing. The new SV
2752 will be returned and will have a reference count of 1.
2754 SV* sv_setref_nv(SV* rv, const char* classname, NV nv)
2761 Copies a pointer into a new SV, optionally blessing the SV. The C<rv>
2762 argument will be upgraded to an RV. That RV will be modified to point to
2763 the new SV. If the C<pv> argument is NULL then C<PL_sv_undef> will be placed
2764 into the SV. The C<classname> argument indicates the package for the
2765 blessing. Set C<classname> to C<Nullch> to avoid the blessing. The new SV
2766 will be returned and will have a reference count of 1.
2768 Do not use with other Perl types such as HV, AV, SV, CV, because those
2769 objects will become corrupted by the pointer copy process.
2771 Note that C<sv_setref_pvn> copies the string while this copies the pointer.
2773 SV* sv_setref_pv(SV* rv, const char* classname, void* pv)
2780 Copies a string into a new SV, optionally blessing the SV. The length of the
2781 string must be specified with C<n>. The C<rv> argument will be upgraded to
2782 an RV. That RV will be modified to point to the new SV. The C<classname>
2783 argument indicates the package for the blessing. Set C<classname> to
2784 C<Nullch> to avoid the blessing. The new SV will be returned and will have
2785 a reference count of 1.
2787 Note that C<sv_setref_pv> copies the pointer while this copies the string.
2789 SV* sv_setref_pvn(SV* rv, const char* classname, char* pv, STRLEN n)
2796 Copies the contents of the source SV C<ssv> into the destination SV C<dsv>.
2797 The source SV may be destroyed if it is mortal. Does not handle 'set'
2798 magic. See the macro forms C<SvSetSV>, C<SvSetSV_nosteal> and
2801 void sv_setsv(SV* dsv, SV* ssv)
2808 Like C<sv_setsv>, but also handles 'set' magic.
2810 void sv_setsv_mg(SV *dstr, SV *sstr)
2817 Copies an unsigned integer into the given SV. Does not handle 'set' magic.
2820 void sv_setuv(SV* sv, UV num)
2827 Like C<sv_setuv>, but also handles 'set' magic.
2829 void sv_setuv_mg(SV *sv, UV u)
2836 Unsets the RV status of the SV, and decrements the reference count of
2837 whatever was being referenced by the RV. This can almost be thought of
2838 as a reversal of C<newSVrv>. See C<SvROK_off>.
2840 void sv_unref(SV* sv)
2847 Upgrade an SV to a more complex form. Use C<SvUPGRADE>. See
2850 bool sv_upgrade(SV* sv, U32 mt)
2857 Tells an SV to use C<ptr> to find its string value. Normally the string is
2858 stored inside the SV but sv_usepvn allows the SV to use an outside string.
2859 The C<ptr> should point to memory that was allocated by C<malloc>. The
2860 string length, C<len>, must be supplied. This function will realloc the
2861 memory pointed to by C<ptr>, so that pointer should not be freed or used by
2862 the programmer after giving it to sv_usepvn. Does not handle 'set' magic.
2863 See C<sv_usepvn_mg>.
2865 void sv_usepvn(SV* sv, char* ptr, STRLEN len)
2872 Like C<sv_usepvn>, but also handles 'set' magic.
2874 void sv_usepvn_mg(SV *sv, char *ptr, STRLEN len)
2881 Processes its arguments like C<vsprintf> and appends the formatted output
2882 to an SV. Uses an array of SVs if the C style variable argument list is
2883 missing (NULL). When running with taint checks enabled, indicates via
2884 C<maybe_tainted> if results are untrustworthy (often due to the use of
2887 void sv_vcatpvfn(SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)
2894 Works like C<vcatpvfn> but copies the text into the SV instead of
2897 void sv_vsetpvfn(SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted)
2904 Variable which is setup by C<xsubpp> to designate the object in a C++
2905 XSUB. This is always the proper type for the C++ object. See C<CLASS> and
2906 L<perlxs/"Using XS With C++">.
2911 Found in file XSUB.h
2915 Converts the specified character to lowercase.
2917 char toLOWER(char ch)
2920 Found in file handy.h
2924 Converts the specified character to uppercase.
2926 char toUPPER(char ch)
2929 Found in file handy.h
2933 This is the XSUB-writer's interface to Perl's C<warn> function. Use this
2934 function the same way you use the C C<printf> function. See
2937 void warn(const char* pat, ...)
2940 Found in file util.c
2944 Push an integer onto the stack, extending the stack if necessary. Handles
2945 'set' magic. See C<PUSHi>.
2954 Push a double onto the stack, extending the stack if necessary. Handles
2955 'set' magic. See C<PUSHn>.
2964 Push a string onto the stack, extending the stack if necessary. The C<len>
2965 indicates the length of the string. Handles 'set' magic. See
2968 void XPUSHp(char* str, STRLEN len)
2975 Push an SV onto the stack, extending the stack if necessary. Does not
2976 handle 'set' magic. See C<PUSHs>.
2985 Push an unsigned integer onto the stack, extending the stack if necessary.
2995 Macro to declare an XSUB and its C parameter list. This is handled by
2999 Found in file XSUB.h
3003 Return from XSUB, indicating number of items on the stack. This is usually
3004 handled by C<xsubpp>.
3006 void XSRETURN(int nitems)
3009 Found in file XSUB.h
3011 =item XSRETURN_EMPTY
3013 Return an empty list from an XSUB immediately.
3018 Found in file XSUB.h
3022 Return an integer from an XSUB immediately. Uses C<XST_mIV>.
3024 void XSRETURN_IV(IV iv)
3027 Found in file XSUB.h
3031 Return C<&PL_sv_no> from an XSUB immediately. Uses C<XST_mNO>.
3036 Found in file XSUB.h
3040 Return an double from an XSUB immediately. Uses C<XST_mNV>.
3042 void XSRETURN_NV(NV nv)
3045 Found in file XSUB.h
3049 Return a copy of a string from an XSUB immediately. Uses C<XST_mPV>.
3051 void XSRETURN_PV(char* str)
3054 Found in file XSUB.h
3056 =item XSRETURN_UNDEF
3058 Return C<&PL_sv_undef> from an XSUB immediately. Uses C<XST_mUNDEF>.
3063 Found in file XSUB.h
3067 Return C<&PL_sv_yes> from an XSUB immediately. Uses C<XST_mYES>.
3072 Found in file XSUB.h
3076 Place an integer into the specified position C<pos> on the stack. The
3077 value is stored in a new mortal SV.
3079 void XST_mIV(int pos, IV iv)
3082 Found in file XSUB.h
3086 Place C<&PL_sv_no> into the specified position C<pos> on the
3089 void XST_mNO(int pos)
3092 Found in file XSUB.h
3096 Place a double into the specified position C<pos> on the stack. The value
3097 is stored in a new mortal SV.
3099 void XST_mNV(int pos, NV nv)
3102 Found in file XSUB.h
3106 Place a copy of a string into the specified position C<pos> on the stack.
3107 The value is stored in a new mortal SV.
3109 void XST_mPV(int pos, char* str)
3112 Found in file XSUB.h
3116 Place C<&PL_sv_undef> into the specified position C<pos> on the
3119 void XST_mUNDEF(int pos)
3122 Found in file XSUB.h
3126 Place C<&PL_sv_yes> into the specified position C<pos> on the
3129 void XST_mYES(int pos)
3132 Found in file XSUB.h
3136 The version identifier for an XS module. This is usually
3137 handled automatically by C<ExtUtils::MakeMaker>. See C<XS_VERSION_BOOTCHECK>.
3140 Found in file XSUB.h
3142 =item XS_VERSION_BOOTCHECK
3144 Macro to verify that a PM module's $VERSION variable matches the XS
3145 module's C<XS_VERSION> variable. This is usually handled automatically by
3146 C<xsubpp>. See L<perlxs/"The VERSIONCHECK: Keyword">.
3148 XS_VERSION_BOOTCHECK;
3151 Found in file XSUB.h
3155 The XSUB-writer's interface to the C C<memzero> function. The C<dest> is the
3156 destination, C<nitems> is the number of items, and C<type> is the type.
3158 void Zero(void* dest, int nitems, type)
3161 Found in file handy.h
3167 Until May 1997, this document was maintained by Jeff Okamoto
3168 <okamoto@corp.hp.com>. It is now maintained as part of Perl itself.
3170 With lots of help and suggestions from Dean Roehrich, Malcolm Beattie,
3171 Andreas Koenig, Paul Hudson, Ilya Zakharevich, Paul Marquess, Neil
3172 Bowers, Matthew Green, Tim Bunce, Spider Boardman, Ulrich Pfeifer,
3173 Stephen McCamant, and Gurusamy Sarathy.
3175 API Listing originally by Dean Roehrich <roehrich@cray.com>.
3177 Updated to be autogenerated from comments in the source by Benjamin Stuhl.
3181 perlguts(1), perlxs(1), perlxstut(1), perlintern(1)