|Keep It Simple, Stupid|
Re^7: Is there a problem with IPC::Open on Windows 7?by glasswalk3r (Pilgrim)
|on Aug 13, 2013 at 15:56 UTC||Need Help??|
Really? How would that work? To the best of my knowledge -- which I thought was pretty good on this subject -- Perl's select is implemented in terms of the winSock select() function which will always return WSAENOTSOCK if any of the descriptors in the set is not a socket.
I'm not a MS Windows specialist and I cannot give all the details of how it works since I copying implementation code from others, but so far it is working 100% for STDOUT, and some initial testing for STDERR is looking good too.
Here is one implementation which I based mine: https://github.com/lucastheisen/ipc-open3-callback
And here is my implementation (take a look at Siebel::Srvrmgr::Daemon run() method and Test::Siebel::Srvrmgr::Daemon runs_with_stderr() method): http://code.google.com/p/siebel-monitoring-tools/source/browse/
Specific to the runs_with_stderr method, the test is not complete (the return code is being get from the Log::Log4perl log method) but if you keep the default logger configuration (see Siebel::Srvrmgr) you will get the STDERR from the srvrmgr-mock.pl script (included in the distribution).
Alceu Rodrigues de Freitas Junior
"You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill