in reply to Handling I/O Signals
How can properly catch SIGIOs?
For the most part, the answer is: You can't - at least not reliably, portably, or effectively.
Firstly, SIGIO is highly system specific. IIRC it is SVR and/or BSD - but definitely *not* POSIX.
Secondly, SIGIOs are only sent for certain types of descriptors.. and to be honest, I'm not sure which ones (most probably terminals).
Generally, it is far more preferred to use IO multiplexing. If you haven't already, check out IO::Select, select, and the examples in the Cookbook.