For a large application I go for
pagekit.org it is a MVCC framework and has support for both, XML/XSLT and a RDBMS. The output templates are generated with
HTML::Template or for newer version with
Template::Toolkit at your option. XML/XSLT is processed with
XML::LibXML and
XML::LibXSLT.
Personaly I use XML only to move static parts of my HTML output out of my templates.