See Non-blocking socket read on Windows. I "think" that fileevent will work on Win32, did you try it?
The problem with fileevent on Win32, is that it won't work on pipe filehandles( you need the Win32::Pipe module). But it should works on sockets. IPC::Run(which uses sockets)is often suggested as an IPC substitute for IPC::Open3 (which uses pipes), for use on Win32.