Apache::Mason allows web pages and sites to be constructed from shared, reusable building blocks called components. Components contain a mixture of Perl and HTML and can call each other and pass values back and forth like subroutines. Components increase modularity and eliminate repetitive work: common design elements (headers, footers, menus, logos) can be extracted into their own components, so that they need be changed only once to affect the whole site.
Other Mason features include powerful filtering and templating facilities, an HTML/data-caching model, and a web-based site-previewing utility.
Available from CPAN and http://www.masonhq.com/. See the module manpage for more information.