 <p>One solution that I feel strikes the right balance in the Framework/Roll-your-own dilemma is the use of three key perl modules: <a href="http://cpan.uwinnipeg.ca/htdocs/CGI.pm/CGI.pm.html#ABSTRACT" rel="nofollow noreferrer">CGI.pm</a>, <a href="http://www.tt2.org/" rel="nofollow noreferrer">Template Toolkit</a> , and <a href="http://cpan.uwinnipeg.ca/htdocs/DBI/DBI/FAQ.html#Basic_Information_amp_Information_So" rel="nofollow noreferrer">DBI</a>. With these three modules you can do elegant MVC programming that is easy to write and to maintain.</p> <p>All three modules are very flexible with Template Toolkit (TT) allowing you to output data in html, XML, or even pdf if you need to. You can also include perl logic in TT, even add your database interface there. This makes your CGI scripts very small and easy to maintain, especially when you use the "standard" pragma. </p> <p>It also allows you to put JavaScript and AJAXy stuff in the template itself which mimics the separation between client and server. </p> <p>These three modules are among the most popular on CPAN, have excellent documentation and a broad user base. Plus developing with these means you can rather quickly move to mod_perl once you have prototyped your code giving you a quick transition to Apache's embedded perl environment.</p> <p>All in all a compact yet flexible toolset.</p>