in reply to Sharing a socket handle over multiple processes

Sockets stay open across forks. They also seem to stay open across execs. The Camel book says that they do not, but I have found that (at least with 5.005 under Linux) they do. See sockets close-on-exec. You can see from there that I used IO::Socket::INET.

You should close them in your parent, though as if both have a socket open, you may get results you do not expect.

You can use fcntl to control whether or not sockets close on exec (if your system implements fcntl and its close-on-exec).