in reply to IPC::Open3 & closed STDOUT

You should open STDOUT to something else (e.g. open STDOUT, '>/dev/null') immediately after closing it, so the next open of any file doesn't get file descriptor 1.