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.
NTK raved about this: www.ntk.net/2003/09/12/
See also Template::Generate by the same author, which given some data and a string, gives you the template that would generate the string.
A wonderful module.
Using Perl DBI is so much more fun than using Java and JDBC.
It also seems to knock the socks off PHP's database APIs, although I'm going on the PHP documentation rather than actual experience.