Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Template::Tiny(3)     User Contributed Perl Documentation    Template::Tiny(3)

       Template::Tiny -	Template Toolkit reimplemented in as little code as

	 my $template =	Template::Tiny->new(
	     TRIM => 1,

	 # Print the template results to STDOUT
	 $template->process( <<'END_TEMPLATE', { foo =>	'World'	} );
	 Hello [% foo %]!

       Template::Tiny is a reimplementation of a subset	of the functionality
       from Template Toolkit in	as few lines of	code as	possible.

       It is intended for use in light-usage, low-memory, or low-cpu
       templating situations, where you	may need to upgrade to the full
       feature set in the future, or if	you want the retain the	familiarity of
       TT-style	templates.

       For the subset of functionality it implements, it has fully-compatible
       template	and stash API. All templates used with Template::Tiny should
       be able to be transparently upgraded to full Template Toolkit.

       Unlike Template Toolkit,	Template::Tiny will process templates without
       a compile phase (but despite this is still quicker, owing to heavy use
       of the Perl regular expression engine.

       Only the	default	"[% %]"	tag style is supported.

       Both the	"[%+ +%]" style	explicit whitespace and	the "[%- -%]" style
       explicit	chomp are support, although the	"[%+ +%]" version is unneeded
       in practice as Template::Tiny does not support default-enabled
       "PRE_CHOMP" or "POST_CHOMP".

       Variable	expressions in the form	"[%	%]" are	supported.

       Appropriate simple behaviours for "ARRAY" references, "HASH" references
       and objects are supported. "VMethods" such as [%	array.length %]	are
       not supported at	this time.

       "IF", "ELSE" and	"UNLESS" conditional blocks are	supported, but only
       with simple "[% %]" conditions.

       Support for looping (or rather iteration) is available in simple	"[%
       FOREACH item IN list %]"	form is	supported. Other loop structures are
       not supported. Because support for arbitrary or infinite	looping	is not
       available, Template::Tiny templates are not turing complete. This is

       All of the four supported control structures
       "IF"/"ELSE"/"UNLESS"/"FOREACH" can be nested to arbitrary depth.

       The treatment of	"_private" hash	and method keys	is compatible with
       Template	Toolkit, returning null	or false rather	than the actual
       content of the hash key or method.

       Anything	beyond the above is currently out of scope.

	 my $template =	Template::Tiny->new(
	     TRIM => 1,

       The "new" constructor is	provided for compatibility with	Template

       The only	parameter it currently supports	is "TRIM" (which removes
       leading and trailing whitespace from processed templates).

       Additional parameters can be provided without error, but	will be

	 # DEPRECATED: Return template results (emits a	warning)
	 my $text = $template->process(	\$input, $vars );

	 # Print template results to STDOUT
	 $template->process( \$input, $vars );

	 # Generate template results into a variable
	 my $output = '';
	 $template->process( \$input, $vars, \$output );

       The "process" method is called to process a template.

       The first parameter is a	reference to a text string containing the
       template	text. A	reference to a hash may	be passed as the second
       parameter containing definitions	of template variables.

       If a third parameter is provided, it must be a scalar reference to be
       populated with the output of the	template.

       For a limited amount of time, the old deprecated	interface will
       continue	to be supported. If "process" is called	without	a third
       parameter, and in scalar	or list	contest, the template results will be
       returned	to the caller.

       If "process" is called without a	third parameter, and in	void context,
       the template results will be "print()"ed	to the currently selected file
       handle (probably	"STDOUT") for compatibility with Template.

       Bugs should be reported via the CPAN bug	tracker	at


       For other issues, or commercial enhancement or support, contact the

       Adam Kennedy <>

       Config::Tiny, CSS::Tiny,	YAML::Tiny

       Copyright 2009 -	2011 Adam Kennedy.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

       The full	text of	the license can	be found in the	LICENSE	file included
       with this module.

perl v5.32.1			  2011-06-17		     Template::Tiny(3)


Want to link to this manual page? Use this URL:

home | help