Neither fork nor open3 does any ipc*, so that's not true.
open3 does setup the child's STD handles to do ipc (if so instructed), but that shouldn't depend on the parent's STD handles.
I do consider this a bug in open3, but it's only triggered under odd, easily avoidable circumstances. ("It hurts when I do this." "So don't do that")
* — Yet. At the moment, it's not possible to distinguish between an exec failure and the child exiting with code 255, and it's not possible to capture the cause of the exec failure. I have a patch for open3 (waiting on Perl 5.12's release) that will have open3 communicate exec failures to the parent via ipc.
|