in reply to Sending Signals / Keyboard Interrupts

Here is an overly simplified version of what I am trying to accomplish:

#!/usr/bin/perl use strict; use warnings; $SIG{'INT'} = \&print_var; my $i = 0; $i++ while 1; sub print_var { print $i . "\n"; }

Obviously this code doesn't do anything useful;
this is really a skeleton of what I would like to do.

It sounds like Term::Readkey will be what I need. Assuming what I think 'non blocking way' means is correct, (I think it means allowing user input without stopping program execution) then yes this is what I want to do. (In fact I'm off to do some research on this very concept.)

Re: The Threaded Method
I'm not sure how to implement this, you seem to be telling me to fork my continual loop and then in the main program wait for the user input? Wouldn't I need to use signals to communicate with my forked process?
Really I think my lack of experience with threaded applications really shows as I've only ever forked a Perl program into the background using the & operator from the CLI. While I don't think this is the method I will implement for this program, can you suggest some good resources to learn about threading?

Gents, thanks for all your help, I really think you've pointed me in the right direction.