in reply to blocking socket and alarm

I don't think I would use alarm() for this. Instead I'd use select() (easier with IO::Select) to do non-blocking reads on the socket. Then it's easy to periodically write to the log when the right amount of time has passed.

-sam