in reply to quiting program

This should work:
use strict; my $hit_count = 0; $SIG{INT} = sub { if (++$hit_count > 3) { print "terminated!\n"; exit; } print "Hit!\n"; }; while (1) { sleep(1000); }
Here, I simply define a subroutine handler for the 'INT' signal. Inside the sub, I keep track of how many times it was initiated (<cntrl>C hit counts) and exit the program on 3rd hit! ;-)

UPDATE: Owww.. Maverick got here first! ;-)

UPDATE: Also I should point out that if your intent is to run a similar code on a Win OS, be cautious of the fact that the system is inherently flawed when it comes to signal handling as you know it in Unix, for example. And as crazyinsomniac kindly pointed out (in my private conversations with him :), "you shouldn't 'exit' out of a signal handler, but kill, kill"! (and I've added the exclamation mark ;-).

_____________________
$"=q;grep;;$,=q"grep";for(`find . -name ".saves*~"`){s;$/;;;/(.*-(\d+) +-.*)$/; $_=["ps -e -o pid | "," $2 | "," -v "," "];`@$_`?{print"+ $1"}:{print" +- $1"}&&`rm $1`; print$\;}