We have a server that is written in Perl and uses IO::Socket. When it receives a connection, it does a little bit of work and then if all goes well, it forks and execs the appropriate ssh tunnel based on information passed during the initial connection. It forks because it hangs around to monitor the ssh tunnel.
Here are the problems: this particular perl takes up a great deal of memory, and as time goes on, there are more and more instances out there due to forking. I also do not think it's cleaning up the connections properly.
The bottom line is this: I can't help thinking that we are doing this on too low a level and I am considering re-writing it. Is this something that would be good to use POE for?