---
name: "HTML::Template::Pro"
section: "3pm"
platform: "linux"
package: "libhtml-template-pro-perl"
version: "0.9524-1+b5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTML::Template::Pro"
---

# HTML::Template::Pro(3pm)

Perl/XS module to use HTML Templates from CGI scripts

## NAME

HTML::Template::Pro - Perl/XS module to use HTML Templates from CGI scripts

## SYNOPSIS

It is moved out and split.

See "SYNOPSIS" in HTML::Template::SYNTAX for introduction  to HTML::Template and syntax of template files.

See "SYNOPSIS" in HTML::Template::PerlInterface for perl interface of HTML::Template, HTML::Template::Expr and HTML::Template::Pro.

## DESCRIPTION

Original HTML::Template is written by Sam Tregar, sam@tregar.com 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.9) and HTML::Template::Expr (as of 0.0.7).  It is not intended to be a complete replacement,  but to be a fast implementation of HTML::Template if you don't need  querying, 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="\<expression\>", including user-defined functions and construction \<TMPL\_INCLUDE EXPR="..."\>.

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.

## SEE ALSO

HTML::Template::SYNTAX, HTML::Template::PerlInterface.

Progect page is http://html-tmpl-pro.sourceforge.net\
  (and http://sourceforge.net/projects/html-tmpl-pro)

Original modules are HTML::Template, HTML::Template::Expr. Their progect page is http://html-template.sourceforge.net

## BUGS

See "BUGS" in HTML::Template::PerlInterface

## AUTHOR

I. Vlasenko, \<viy@altlinux.org\>

with contributions of Bruni Emiliano, \<info at ebruni.it\> Stanislav Yadykin, \<tosick at altlinux.ru\> Viacheslav Sheveliov \<slavash at aha.ru\> Shigeki Morimoto \<shigeki.morimoto at mixi.co.jp\> Kirill Rebenok \<kirill at rebenok.pl\>

## COPYRIGHT AND LICENSE

Copyright (C) 2005-2021 by I. Yu. Vlasenko. Pieces of code in Pro.pm and documentation of HTML::Template are copyright (C) 2000-2002 Sam Tregar (sam@tregar.com)

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, sam@tregar.com.

This library is free software; you can redistribute it and/or modify it under  either the LGPL2+ or 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.
