Contents
Top- Template Toolkit Modules
- Template
- Template::Base
- Template::Config
- Template::Constants
- Template::Context
- Template::Document
- Template::Exception
- Template::Filters
- Template::Iterator
- Template::Namespace::Constants
- Template::Parser
- Template::Plugin
- Template::Plugins
- Template::Provider
- Template::Service
- Template::Stash
- Template::Stash::XS
- Template::Test
Template Toolkit Modules
TopThis documentation provides an overview of the different modules that comprise the Template Toolkit.
Template
TopThe Template module is the front-end to the Template Toolkit for Perl programmers.
use Template; my $tt = Template->new(); $tt->process('hello.html', message => 'Hello World');
Template::Base
TopThe Template::Base module implements a base class from which the other Template Toolkit modules are derived. It implements common functionality for creating objects, error reporting, debugging, and so on.
Template::Config
TopThe Template::Config module defines the configuration of the Template Toolkit for your system. It is an example of a factory module which is responsible for instantiating the various other modules used in the Template Toolkit.
For example, the Template::Config module defines the $STASH
package
variable which indicates which version of the Template::Stash you are using by
default. If you elected to use the faster XS stash when you installed the
Template Toolkit, then this will be set as:
$STASH = 'Template::Stash::XS';
Otherwise you'll get the regular Perl stash:
$STASH = 'Template::Stash';
This approach means that other parts of the Template Toolkit don't have to worry about which stash you're using. They just ask the Template::Config module to create a stash of the right kind.
Template::Constants
TopThe Template::Constants defines a number of constants that are used by the Template Toolkit.
For example, the :chomp
tagset defines the
CHOMP_???
constants that can be used with the
PRE_CHOMP
and POST_CHOMP
configuration options.
use Template::Constants ':chomp'; my $tt = Template->new({ PRE_CHOMP => CHOMP_COLLAPSE, });
Template::Context
TopThe Template::Context module defines a runtime context in which templates are processed. A context keeps track of all the templates, variables, plugins, and other resources that are available (either directly or through delegate objects) and provides methods to fetch, store, and perform various operations on them.
Template::Document
TopThe Template::Document module implements a compiled template document object. This is generated by the Template::Parser module.
Template::Exception
TopThe Template::Exception module implements an exception object which is used for runtime error reporting.
Template::Filters
Top
The Template::Filters module implements a filter provider. It
includes the core collection of filters that can be used via the
FILTER
directive.
Template::Iterator
Top
The Template::Iterator module implements a data iterator which steps
through each item in a list in turn. It is used by the
FOREACH
directive. Within a FOREACH
block, the
loop
variable always references the current iterator object.
[% FOREACH item IN list;
IF loop.first;
# first item in loop
ELSIF loop.last;
# last item in loop
ELSE;
# any other item in loop
END;
END
%]
Template::Namespace::Constants
TopThe Template::Namespace::Constants module is used internally to represent constants. These can be resolved immediately at the point that a template is compiled.
Template::Parser
TopThe Template::Parser module is used to parse a source template and turn it into Perl code which can be executed.
Template::Plugin
Top
The Template::Plugin
module is a base class for Template Toolkit plugins that can be loaded on
demand from within a template using the USE
directive.
Template::Plugins
TopThe Template::Plugins module is the plugins provider. It loads and prepares plugins as and when they are requested from within a template.
Template::Provider
TopThe Template::Provider module is responsible for loading, compiling and caching templates.
Template::Service
Top
The Template::Service module implements a service layer that sits
just behind the Template
module, and just in front of a Template::Context. It handles
each request to process a template (forwarded from the Template module). It adds any headers
and/or footers (specified via the PRE_PROCESS
and
POST_PROCESS
options), applies any wrapper (the
WRAPPER
option) and catches any errors returned (the
ERRORS
option).
Template::Stash
TopThe Template::Stash module is used to fetch and store template variables. It implements all of the magic associated with the dot operator.
Template::Stash::XS
TopThe Template::Stash::XS module is a high-speed implementation of Template::Stash written in C.
Template::Test
TopThe Template::Test module is used to automate the Template Toolkit test scripts.