Perl/XS module to use HTML Templates from CGI scripts
Original HTML::Template is written by Sam Tregar, with contributions of many
people mentioned there. Their efforts caused HTML::Template to be mature html
tempate engine which separate perl code and html design. Yet powerful,
HTML::Template is slow, especially if mod_perl isn't available or in case of
disk usage and memory limitations.
HTML::Template::Pro is a fast lightweight C/Perl+XS reimplementation of
HTML::Template (as of 2.8) and HTML::Template::Expr (as of 0.0.5). It is not
intended to be a complete replacement, but to be a fast implementation of
HTML::Template if you don't need quering, the extended facility of
HTML::Template. Designed for heavy upload, resource limitations, abcence of
HTML::Template::Pro has complete support of filters and HTML::Template::Expr's
tag EXPR="expression", including user-defined functions.
HTML::Template work cycle uses 2 steps. First, it loads and parse template.
Then it accepts param() calls until you call output(). output() is its second
phase where it produces a page from the parsed tree of template, obtained in
the 1st step.
HTML::Template::Pro loads, parse and outputs template on fly, when you call
$tmpl->output(), in one pass. The corresponding code is written in C and glued
to Perl using Perl+XS. As a result, comparing to HTML::Template in ordinary
calls, it runs 10-25 times faster. Comparing to HTML::Template with all caching
enabled under mod_perl, it still 1-3 times faster. At that HTML::Template
caching requires considerable amount of memory (per process, shareable, or on
disk) to be permanently filled with parsed trees, whereas HTML::Template::Pro
don't consumes memory for caches and use mmap() for reading templates on disk.
Introduction to HTML::Template and syntax of template files is described in
HTML::Template::SYNTAX. Perl interface of HTML::Template and
HTML::Template::Pro is described in HTML::Template::PerlInterface.