diff options
author | David Mitchell <davem@iabyn.com> | 2010-10-03 20:50:20 +0100 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2010-10-03 20:52:10 +0100 |
commit | be064c4a1f59651142e99788731ae1d164c19537 (patch) | |
tree | f1b6a281c175935bcde47b838caeca4ec14e5dbd /pod/perlcall.pod | |
parent | 6b2fb389897a68db92c38c22f79403607f0da303 (diff) | |
download | perl-be064c4a1f59651142e99788731ae1d164c19537.tar.gz |
better documentation for eval_sv() and G_KEEPERR
Diffstat (limited to 'pod/perlcall.pod')
-rw-r--r-- | pod/perlcall.pod | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/pod/perlcall.pod b/pod/perlcall.pod index f34a53dbfb..1694848986 100644 --- a/pod/perlcall.pod +++ b/pod/perlcall.pod @@ -336,8 +336,9 @@ It may also be useful to do this with code for C<__DIE__> or C<__WARN__> hooks, and C<tie> functions. The G_KEEPERR flag is meant to be used in conjunction with G_EVAL in -I<call_*> functions that are used to implement such code. This flag -has no effect when G_EVAL is not used. +I<call_*> functions that are used to implement such code, or with +C<eval_sv>. This flag has no effect on the C<call_*> functions when +G_EVAL is not used. When G_KEEPERR is used, any error in the called code will terminate the call as usual, and the error will not propagate beyond the call (as usual @@ -346,6 +347,9 @@ converted into a warning, prefixed with the string "\t(in cleanup)". This can be disabled using C<no warnings 'misc'>. If there is no error, C<$@> will not be cleared. +Note that the G_KEEPERR flag does not propagate into inner evals; these +may still set C<$@>. + The G_KEEPERR flag was introduced in Perl version 5.002. See I<Using G_KEEPERR> for an example of a situation that warrants the |