This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Note that various items in perlguts are documented
[perl5.git] / pod / perlguts.pod
index 75d1cfb..fb6701d 100644 (file)
@@ -548,6 +548,8 @@ is only valid for the duration of a single perl process.
 See L</Understanding the Magic of Tied Hashes and Arrays> for more
 information on how to use the hash access functions on tied hashes.
 
+=for apidoc Amh|void|PERL_HASH|U32 hash|char *key|STRLEN klen
+
 =head2 Hash API Extensions
 
 Beginning with version 5.004, the following functions are also supported:
@@ -1652,12 +1654,18 @@ function takes C<int *>.
 
 =item C<SV* save_scalar(GV *gv)>
 
+=for apidoc save_scalar
+
 Equivalent to Perl code C<local $gv>.
 
 =item C<AV* save_ary(GV *gv)>
 
+=for apidoc save_ary
+
 =item C<HV* save_hash(GV *gv)>
 
+=for apidoc save_hash
+
 Similar to C<save_scalar>, but localize C<@gv> and C<%gv>.
 
 =item C<void save_item(SV *item)>
@@ -1671,17 +1679,24 @@ magic is affected.
 
 =item C<void save_list(SV **sarg, I32 maxsarg)>
 
+=for apidoc save_list
+
 A variant of C<save_item> which takes multiple arguments via an array
 C<sarg> of C<SV*> of length C<maxsarg>.
 
 =item C<SV* save_svref(SV **sptr)>
 
+=for apidoc save_svref
+
 Similar to C<save_scalar>, but will reinstate an C<SV *>.
 
 =item C<void save_aptr(AV **aptr)>
 
 =item C<void save_hptr(HV **hptr)>
 
+=for apidoc save_aptr
+=for apidoc save_hptr
+
 Similar to C<save_svref>, but localize C<AV *> and C<HV *>.
 
 =back
@@ -2354,6 +2369,8 @@ please see F<miniperlmain.c> for usage details.  You may also need
 to use C<dVAR> in your coding to "declare the global variables"
 when you are using them.  dTHX does this for you automatically.
 
+=for apidoc Amnh||dVAR
+
 To see whether you have non-const data you can use a BSD (or GNU)
 compatible C<nm>:
 
@@ -2415,6 +2432,12 @@ The first character could be 'p' for a B<p>rototype, 'a' for B<a>rgument,
 or 'd' for B<d>eclaration, so we have C<pTHX>, C<aTHX> and C<dTHX>, and
 their variants.
 
+=for apidoc Amnh||aTHX
+=for apidoc Amnh||aTHX_
+=for apidoc Amnh||dTHX
+=for apidoc Amnh||pTHX
+=for apidoc Amnh||pTHX_
+
 When Perl is built without options that set PERL_IMPLICIT_CONTEXT, there is no
 first argument containing the interpreter's context.  The trailing underscore
 in the pTHX_ macro indicates that the macro expansion needs a comma
@@ -2461,6 +2484,8 @@ need only be aware of [pad]THX.
 
 =head2 So what happened to dTHR?
 
+=for apidoc Amnh||dTHR
+
 C<dTHR> was introduced in perl 5.005 to support the older thread model.
 The older thread model now uses the C<THX> mechanism to pass context
 pointers around, so C<dTHR> is not useful any more.  Perl 5.6.0 and
@@ -2669,6 +2694,14 @@ following macros for portability
         NVff            NV %f-like
         NVgf            NV %g-like
 
+=for apidoc Amnh||IVdf
+=for apidoc Amnh||UVuf
+=for apidoc Amnh||UVof
+=for apidoc Amnh||UVxf
+=for apidoc Amnh||NVef
+=for apidoc Amnh||NVff
+=for apidoc Amnh||NVgf
+
 These will take care of 64-bit integers and long doubles.
 For example:
 
@@ -2706,6 +2739,11 @@ use the follow macros to do it right.
         PTR2NV(pointer)
         INT2PTR(pointertotype, integer)
 
+=for apidoc Amh|void *|INT2PTR|type|int value
+=for apidoc Amh|UV|PTR2UV|void *
+=for apidoc Amh|IV|PTR2IV|void *
+=for apidoc Amh|NV|PTR2NV|void *
+
 For example:
 
         IV  iv = ...;