in reply to CGI Replacement Recommendations?

You should take a look at CGI::Application. Starting from a "pure CGI" background, I found it to be very easy to learn, and very appealing in terms of how I can structure my applications.

A really nice feature is the native support for your choice of template systems. (I happened to pick Template::Toolkit, which is quite powerful but well documented and easy to manage, but you have others to choose from.)

Another nice feature is that it's really easy to add new operations (as new pages) in your app, with minimal muss or fuss. Overall, you end up having to write a lot less code than you would with pure CGI, and it tends to be better organized and more coherent.

UPDATE: Having seen the reply below from Your Mother, I'm going to start looking into the recommendations there myself. (But I'll remain open to the possibility that for some developers, CGI::Application is "far enough" along the path that it will suffice for a certain range of web applications.)

Replies are listed 'Best First'.
Re^2: CGI Replacement Recommendations?
by derby (Abbot) on Feb 09, 2011 at 12:38 UTC

    I think this is the best answer so far (++). It leads to the question ... is "CGI the protocol" clunky? OR is "CGI the implentation" (fork/exec) clunky? Or is "CGI the CPAN module" clunky?

    The protocol is fine.

    The implementation *may* be clunky for certain classes of web applications but in your average environment (decent sized machine with reasonable user base), the fork/exec model is really not as bad as everyone thinks. 50K - 100K hits per day is not going to stress a decent setup.

    As for the CPAN module. I always consider CGI to suffer from multiple personalities. The one personality is a top-notch CGI (the protocol) parameter parsing beast that should not be dismissed. The other personality is a mediocre templating system that should be avoided like the plague (IMHO). The great thing Lincoln did was create the module in such a way that using CGI for it's parameter handling features alone is possible and you're not really incurring any penalties by ignoring the HTML generation/template features.

    So yes, CGI::Application combined with a decent templating system is the next logical step from a pure CGI approach.

    -derby