Re: [perl #31924] %INC caching failure-case problem
[p5sagit/p5-mst-13.2.git] / pod / perlcall.pod
index 148b24b..dd520af 100644 (file)
@@ -201,8 +201,8 @@ As with G_SCALAR, this flag has 2 effects:
 
 =item 1.
 
-It indicates to the subroutine being called that it is executing in an
-array context (if it executes I<wantarray> the result will be true).
+It indicates to the subroutine being called that it is executing in a
+list context (if it executes I<wantarray> the result will be true).
 
 
 =item 2.
@@ -343,7 +343,11 @@ has no effect when G_EVAL is not used.
 
 When G_KEEPERR is used, any errors in the called code will be prefixed
 with the string "\t(in cleanup)", and appended to the current value
-of C<$@>.
+of C<$@>.  an error will not be appended if that same error string is
+already at the end of C<$@>.
+
+In addition, a warning is generated using the appended string. This can be
+disabled using C<no warnings 'misc'>.
 
 The G_KEEPERR flag was introduced in Perl version 5.002.
 
@@ -355,7 +359,7 @@ use of this flag.
 As mentioned above, you can determine the context of the currently
 executing subroutine in Perl with I<wantarray>.  The equivalent test
 can be made in C by using the C<GIMME_V> macro, which returns
-C<G_ARRAY> if you have been called in an array context, C<G_SCALAR> if
+C<G_ARRAY> if you have been called in a list context, C<G_SCALAR> if
 in a scalar context, or C<G_VOID> if in a void context (i.e. the
 return value will not be used).  An older version of this macro is
 called C<GIMME>; in a void context it returns C<G_SCALAR> instead of
@@ -589,12 +593,6 @@ local copy, I<not> the global copy.
 
 =item 4.
 
-The only flag specified this time is G_DISCARD. Because we are passing 2
-parameters to the Perl subroutine this time, we have not specified
-G_NOARGS.
-
-=item 5.
-
 Next, we come to XPUSHs. This is where the parameters actually get
 pushed onto the stack. In this case we are pushing a string and an
 integer.
@@ -602,7 +600,7 @@ integer.
 See L<perlguts/"XSUBs and the Argument Stack"> for details
 on how the XPUSH macros work.
 
-=item 6.
+=item 5.
 
 Because we created temporary values (by means of sv_2mortal() calls)
 we will have to tidy up the Perl stack and dispose of mortal SVs.
@@ -632,10 +630,12 @@ to limit the scope of local variables.
 See the section I<Using Perl to dispose of temporaries> for details of
 an alternative to using these macros.
 
-=item 7.
+=item 6.
 
-Finally, I<LeftString> can now be called via the I<call_pv>
-function.
+Finally, I<LeftString> can now be called via the I<call_pv> function.
+The only flag specified this time is G_DISCARD. Because we are passing
+2 parameters to the Perl subroutine this time, we have not specified
+G_NOARGS.
 
 =back
 
@@ -806,7 +806,7 @@ Notes
 
 =item 1.
 
-We wanted array context, so G_ARRAY was used.
+We wanted list context, so G_ARRAY was used.
 
 =item 2.