in reply to perlipc on Windows

For the first block of code, parent/child communication via pipes, one option is to use Win32::Pipe to do (basically) the same thing.

For the second block of code, perl does not support alarm() functionality on Windows. You can accomplish the same thing by using the Win32::Process module to launch the external command, and then the Win32::IPC module to wait() for it to exit, with a timeout.