Top Close Open

The Template Toolkit is a collection of Perl modules which implement a fast, flexible, powerful and extensible template processing system.

It is "input-agnostic" and can be used equally well for processing any kind of text documents: HTML, XML, CSS, Javascript, Perl code, plain text, and so on. However, it is most often used for generating static and dynamic web content, so that's what we'll focus on here.

Although the Template Toolkit is written in Perl, you don't need to be a Perl programmer to use it. It was designed to allow non-programmers to easily create and maintain template-based web sites without having to mess around writing Perl code or going crazy with cut-n-paste.

However, the Template Toolkit is also designed to be extremely flexible and extensible. If you are a Perl programmer, or know someone who is, then you can easily hook the Template Toolkit into your existing code, data, databases and web applications. Furthermore, you can easily extend the Template Toolkit through the use of its plugin mechanism and other developer APIs.

Whatever context you use it in, the primary purpose of the Template Toolkit is to allow you to create a clear separation between the presentation elements of your web site and everything else.

If you're generating static web pages, then you can use it to separate the commonly repeated user interface elements on each page (headers, menus, footers, etc.) from the core content. If you're generating dynamic web pages for the front end of a web application, then you'll also be using it to keep the back-end Perl code entirely separate from the front-end HTML templates. Either way, a clear separation of concerns is what allow you to concentrate on one thing at a time without the other things getting in your way. And that's what the Template Toolkit is all about.


Top Close Open

The documentation for the Template Toolkit is organised into five sections.

The Template::Manual contains detailed information about using the Template Toolkit. It gives examples of its use and includes a full reference of the template language, configuration options, filters, plugins and other component parts.

The Template::Modules page lists the Perl modules that comprise the Template Toolkit. It gives a brief explanation of what each of them does, and provides a link to the complete documentation for each module for further information. If you're a Perl programmer looking to use the Template Toolkit from your Perl programs then this section is likely to be of interest.

Most, if not all of the information you need to call the Template Toolkit from Perl is in the documentation for the Template module. You only really need to start thinking about the other modules if you want to extend or modify the Template Toolkit in some way, or if you're interested in looking under the hood to see how it all works.

The documentation for each module is embedded as POD in each module, so you can always use perldoc from the command line to read a module's documentation. e.g.

$ perldoc Template
$ perldoc Template::Context

It's worth noting that all the other documentation, including the user manual is available as POD. e.g.

$ perldoc Template::Manual
$ perldoc Template::Manual::Config

The Template::Tools section contains the documentation for Template::Tools::tpage and Template::Tools::ttree. These are two command line programs that are distributed with the Template Toolkit. tpage is used to process a single template file, ttree for processing entire directories of template files.

The Template::Tutorial section contains two introductory tutorials on using the Template Toolkit. The first is Template::Tutorial::Web on generating web content. The second is Template::Tutorial::Datafile on using the Template Toolkit to generate other data formats including XML.

The final section of the manual is Template::FAQ which contains answers to some of the Frequently Asked Questions about the Template Toolkit.

You can read the documentation in HTML format either online at the Template Toolkit web site,, or by downloading the HTML version of the documentation from and unpacking it on your local machine.


Top Close Open

The Template Toolkit was written by Andy Wardley ( with assistance and contributions from a great number of people. Please see Template::Manual::Credits for a full list.


Top Close Open

Copyright (C) 1996-2013 Andy Wardley. All Rights Reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. last modified 15:21:37 17-Sep-2014
Fork me on GitHub