summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2012-01-08 15:45:39 +0000
committerDavid Mitchell <davem@iabyn.com>2012-01-08 15:45:39 +0000
commitc94b42ea5841e1ad13f8a690f05308e25164ef27 (patch)
tree5288201ab3f0f3280e9a53e08df8e2682363984d
parent0d3e3823fc2c5798b126aa5b37330bbcf7532319 (diff)
downloadperl-c94b42ea5841e1ad13f8a690f05308e25164ef27.tar.gz
clarify how $SIG{__DIE__} can return
It can return via 'goto &sub', but not via 'goto LABEL'. The docs originally just said 'via goto' See [perl #44367].
-rw-r--r--pod/perlvar.pod8
1 files changed, 4 insertions, 4 deletions
diff --git a/pod/perlvar.pod b/pod/perlvar.pod
index 1727c6db43..61ad1a9434 100644
--- a/pod/perlvar.pod
+++ b/pod/perlvar.pod
@@ -558,10 +558,10 @@ The routine indicated by C<$SIG{__DIE__}> is called when a fatal
exception is about to be thrown. The error message is passed as the
first argument. When a C<__DIE__> hook routine returns, the exception
processing continues as it would have in the absence of the hook,
-unless the hook routine itself exits via a C<goto>, a loop exit, or a
-C<die()>. The C<__DIE__> handler is explicitly disabled during the
-call, so that you can die from a C<__DIE__> handler. Similarly for
-C<__WARN__>.
+unless the hook routine itself exits via a C<goto &sub>, a loop exit,
+or a C<die()>. The C<__DIE__> handler is explicitly disabled during
+the call, so that you can die from a C<__DIE__> handler. Similarly
+for C<__WARN__>.
Due to an implementation glitch, the C<$SIG{__DIE__}> hook is called
even inside an C<eval()>. Do not use this to rewrite a pending