Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: quiting program

by maverick (Curate)
on May 31, 2002 at 19:40 UTC ( #170814=note: print w/ replies, xml ) Need Help??


in reply to quiting program

You'll need to setup a signal handler to catch the ctrl-c.

my $num_ctrlc = 0; $SIG{'INT'} = sub { $num_ctrlc++; print "Got $num_ctrlc ctrl-c\n"; exit if $num_ctrlc > 2; }; # rest of program
The $SIG{'INT'} part creates a signal handler for 'interrupt' (control-c) with your code. In this case, a little sub that increments a global counter, prints a message, and exists if the counter is above a certain number

BTW, your while loop is only going to run once, since @a will contain ALL of STDIN on the first pass... Perhaps you meant something more like:

while ($a = <STDIN>) { print $a; }
HTH

/\/\averick
OmG! They killed tilly! You *bleep*!!


Comment on Re: quiting program
Select or Download Code
Re^2: quiting program
by particle (Vicar) on May 31, 2002 at 20:43 UTC
    your code is probably better implemented as a closure. then there's no special variable in the same scope as your code.

    { my $num_ctrlc = 0; $SIG{'INT'} = sub { print "Got " . ++$num_ctrlc . " ctrl-c\n"; exit if $num_ctrlc > 2; } }

    ~Particle *accelerates*

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://170814]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (14)
As of 2015-07-06 15:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (77 votes), past polls