http://www.perlmonks.org?node_id=798592


in reply to Writing Interrupt proram in PERL

The low-level way of handling this sort of thing is to setup all your IO (including the terminal input) as non-blocking, and then use select to dispatch code whenever input arrives or output is flushed at a socket/handle, and possibly do other stuff in between.

I'd recommend POE::Wheel::Readline in this case - it takes care of a lot of stuff for you, but you do need to read up a bit on POE. See also the example at the poe.perl.org site

updated: fixed link to PWR