56
56
<li><a href="http://search.cpan.org">CPAN</a></li>
57
<li><a href="http://www.perl.org">Perl.org</a></li>
57
58
<li><a href="http://www.perl.com">Perl.com</a></li>
58
<li><a href="http://www.perl.org">Perl.org</a></li>
59
<li><a href="http://perlbuzz.com">Perl Buzz</a></li>
60
<li><a href="http://www.perlfoundation.org/perl5/index.cgi">Perl 5 Wiki</a></li>
61
<li><a href="http://jobs.perl.org">Perl Jobs</a></li>
59
62
<li><a href="http://www.pm.org">Perl Mongers</a></li>
60
63
<li><a href="http://www.perlmonks.org">Perl Monks</a></li>
61
64
<li><a href="http://planet.perl.org">Planet Perl</a></li>
84
87
<div id="contentBody"><div class="title_container"><div class="page_title">sigtrap</div></div><ul><li><a href="#NAME">NAME</a><li><a href="#SYNOPSIS">SYNOPSIS</a><li><a href="#DESCRIPTION">DESCRIPTION</a><li><a href="#OPTIONS">OPTIONS</a><ul><li><a href="#SIGNAL-HANDLERS">SIGNAL HANDLERS</a><li><a href="#SIGNAL-LISTS">SIGNAL LISTS</a><li><a href="#OTHER">OTHER</a></ul><li><a href="#EXAMPLES">EXAMPLES</a></ul><a name="NAME"></a><h1>NAME</h1>
85
88
<p>sigtrap - Perl pragma to enable simple signal handling</p>
86
89
<a name="SYNOPSIS"></a><h1>SYNOPSIS</h1>
87
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a><span class="sc">;</span>
88
<a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(stack-trace old-interface-signals)</span><span class="sc">;</span> <span class="c"># equivalent</span>
89
<a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(BUS SEGV PIPE ABRT)</span><span class="sc">;</span>
90
<a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(die INT QUIT)</span><span class="sc">;</span>
91
<a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(die normal-signals)</span><span class="sc">;</span>
92
<a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(die untrapped normal-signals)</span><span class="sc">;</span>
93
<a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(die untrapped normal-signals</span>
90
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span><span class="sc">;</span>
91
<a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(stack-trace old-interface-signals)</span><span class="sc">;</span> <span class="c"># equivalent</span>
92
<a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(BUS SEGV PIPE ABRT)</span><span class="sc">;</span>
93
<a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(die INT QUIT)</span><span class="sc">;</span>
94
<a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(die normal-signals)</span><span class="sc">;</span>
95
<a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(die untrapped normal-signals)</span><span class="sc">;</span>
96
<a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(die untrapped normal-signals</span>
94
97
<span class="q">stack-trace any error-signals)</span><span class="sc">;</span>
95
<a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">'handler'</span> <span class="cm">=></span> \<span class="i">&my_handler</span><span class="cm">,</span> <span class="q">'normal-signals'</span><span class="sc">;</span>
96
<a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(handler my_handler normal-signals</span>
98
<a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">'handler'</span> <span class="cm">=></span> \<span class="i">&my_handler</span><span class="cm">,</span> <span class="q">'normal-signals'</span><span class="sc">;</span>
99
<a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(handler my_handler normal-signals</span>
97
100
<span class="q">stack-trace error-signals)</span><span class="sc">;</span></pre>
98
101
<a name="DESCRIPTION"></a><h1>DESCRIPTION</h1>
99
102
<p>The <b>sigtrap</b> pragma is a simple interface to installing signal
121
124
<li><a name="*die*"></a><b><b>die</b></b>
122
125
<p>The handler used for subsequently installed signals calls <code class="inline"><a class="l_k" href="functions/die.html">die</a></code>
123
(actually <code class="inline">croak</code>
126
(actually <code class="inline"><span class="w">croak</span></code>
124
127
) with a message indicating which signal was caught.</p>
126
129
<li><a name="*handler*-_your-handler_"></a><b><b>handler</b> <i>your-handler</i></b>
127
130
<p><i>your-handler</i> will be used as the handler for subsequently installed
128
131
signals. <i>your-handler</i> can be any value which is valid as an
129
132
assignment to an element of <code class="inline"><span class="i">%SIG</span></code>
133
. See <a href="perlvar.html">perlvar</a> for examples of
134
handler functions.</p>
133
137
<a name="SIGNAL-LISTS"></a><h2>SIGNAL LISTS</h2>
177
181
<a name="EXAMPLES"></a><h1>EXAMPLES</h1>
178
182
<p>Provide a stack trace for the old-interface-signals:</p>
179
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a><span class="sc">;</span></pre>
183
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span><span class="sc">;</span></pre>
181
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(stack-trace old-interface-signals)</span><span class="sc">;</span></pre>
185
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(stack-trace old-interface-signals)</span><span class="sc">;</span></pre>
182
186
<p>Provide a stack trace on the 4 listed signals only:</p>
183
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(BUS SEGV PIPE ABRT)</span><span class="sc">;</span></pre>
187
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(BUS SEGV PIPE ABRT)</span><span class="sc">;</span></pre>
184
188
<p>Die on INT or QUIT:</p>
185
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(die INT QUIT)</span><span class="sc">;</span></pre>
189
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(die INT QUIT)</span><span class="sc">;</span></pre>
186
190
<p>Die on HUP, INT, PIPE or TERM:</p>
187
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(die normal-signals)</span><span class="sc">;</span></pre>
191
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(die normal-signals)</span><span class="sc">;</span></pre>
188
192
<p>Die on HUP, INT, PIPE or TERM, except don't change the behavior for
189
193
signals which are already trapped or ignored:</p>
190
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(die untrapped normal-signals)</span><span class="sc">;</span></pre>
194
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(die untrapped normal-signals)</span><span class="sc">;</span></pre>
191
195
<p>Die on receipt one of an of the <b>normal-signals</b> which is currently
192
196
<b>untrapped</b>, provide a stack trace on receipt of <b>any</b> of the
193
197
<b>error-signals</b>:</p>
194
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(die untrapped normal-signals</span>
198
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(die untrapped normal-signals</span>
195
199
<span class="q">stack-trace any error-signals)</span><span class="sc">;</span></pre>
196
200
<p>Install my_handler() as the handler for the <b>normal-signals</b>:</p>
197
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">'handler'</span><span class="cm">,</span> \<span class="i">&my_handler</span><span class="cm">,</span> <span class="q">'normal-signals'</span><span class="sc">;</span></pre>
201
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">'handler'</span><span class="cm">,</span> \<span class="i">&my_handler</span><span class="cm">,</span> <span class="q">'normal-signals'</span><span class="sc">;</span></pre>
198
202
<p>Install my_handler() as the handler for the normal-signals, provide a
199
203
Perl stack trace on receipt of one of the error-signals:</p>
200
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="sigtrap.html">sigtrap</a> <span class="q">qw(handler my_handler normal-signals</span>
204
<pre class="verbatim"> <a class="l_k" href="functions/use.html">use</a> <span class="w">sigtrap</span> <span class="q">qw(handler my_handler normal-signals</span>
201
205
<span class="q">stack-trace error-signals)</span><span class="sc">;</span></pre>
203
207
<div id="contentFooter"><a href="http://www.perl.org"><img src="perlpowered.png" border=0></a></div>