The main challenge in developing a web-application is proper design. The decoupling of the static content from the dynamic content inside the individual pages is the trickiest part. I’ve used HTML::Template and Templete Toolkit modules for providing the templates. And the templates are filled in with real data using a Perl script. The HTML::Template module provides good flexibility of separating the dynamic parts of the page from the static content. But as far as the application is small, and there’s a harmony between the application-developer and the UI-designer of the web-app, everything seems to be perfect. But as far as the UI designer is concerned he/she must know how exactly the dynamic parts are being replaced by the application logic. Otherwise, it’s going to be a big mess.Particularly for large web-applications this doesn’t work. I guess same is the case with other template mechanisms. Unless the webpage designer knows how the templates and Perl work, it’s really hard to produce good web-application.
Perl is supported by major web-servers: Apache, IIS etc. Apache has also mod_perl (kind of embedded Perl interpreter) which provides fast, in fact very fast execution of Perl Script. The main idea of using mod_perl is to get access to the Apache API itself, and extend the web-server to provide our we-app functionality, that means: essentially turning your web-servers into web-app-server. The mod_perl can do wonders for large web-sites or web-applications. With all the power of Perl and the super stable Apache, completely reliable applications can be built.