My application is a stand-alone Perl web server. I want something that will handle moderate transaction volumes (<10 requests/second). I have used Apache up until now but want a stand-alone server because Apache is too unwieldy to deploy on my customers' machines. My strategy was to re-use HTTP::Daemon::ClientConn in a roll-your-own socket server.
I think there are way too many nuances to getting a UNIX TCP/IP forking server right for rolling your own to make sense. It's also a bitch to test; you have to wait for kind-hearted users to email you. (Maybe you could use mock objects but mocking a UNIX process environment and sockets is more than I can take on at the moment.)
Net::Server takes care of all this for you in a nice re-usable framework. It uses personalities so you can have forking and pre-forking servers. They have lots of nice features such as HUPability and logging. There are other personalities I haven't checked out.
It would be better if it had a mailing list where people can help each other out and suggest improvements though.
For anybody else considering POE, I looked at it, but I prefer something that forks because of the better fault isolation a seperate address space provides. I need something that won't leak memory or segfault if I leave it for a few weeks, and fork is the way to go for that (IMO).
Great idea, brilliantly executed. Given a template and a string, this module gives you the data out of the string. So you can write a parser for a string (a web page, say) by writing the template that *would* generate it.