SourceForge Summary page of the project
Home page of the author

HTML-Template-Pro version 0.69


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 mod_perl.

HTML::Template::Pro has complete support of filters and HTML::Template::Expr's 
tag EXPR="", 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.


This module is tested on Linux and FreeBSD. There are success reports 
on MacOS X, Solaris, Windows. Windows users should look at README.win32.
For Unixes it currently use POSIX mmap() system call, 
which may be unavaliable on some systems. 
In such case add argument MMAP=0 to perl Makefile.PL.

To install this module type the following:

   perl Makefile.PL
   make test
   make install

If you have libpcre installed try 
   perl Makefile.PL PCRE=1

other optional parameters include DEBUG (build with extra debug level)
and IMITATE (imitate behavior of HTML::Template in all circumstances,
even on broken templates, for a little cost of  perfomance).

So a fully fledged build is
   perl Makefile.PL PCRE=1 DEBUG=1 IMITATE=1


This module requires these other modules and libraries:


  libpcre (optional)


Add support for die_on_bad_params => 1.
Add support for quering.
Improve debug message subsystem.


You can find information about HTML::Template::Pro at: 

Original HTML::Template and other related modules are located at:


Copyright (C) 2005-2008 by I. Yu. Vlasenko.
Pieces of code in and documentation of HTML::Template are
copyright (C) 2000-2006 Sam Tregar (

The template syntax, interface conventions and a large piece of documentation 
of HTML::Template::Pro are based on CPAN module HTML::Template 
by Sam Tregar,

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.4 or,
at your option, any later version of Perl 5 you may have available,
or, at your option, under the terms of the GNU General Public License 
as published by the Free Software Foundation; either version 2 of the 
License, or (at your option) any later version.