The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Text::Tmpl - Templating system perl library

SYNOPSIS

use Text::Tmpl;

$context = Text::Tmpl::init();

$return = Text::Tmpl::set_delimiters($opentag, $closetag);

$return = Text::Tmpl::register_simple($name, $coderef);

$return = Text::Tmpl::register_pair($isnamed, $open_name, $close_name, $coderef);

$return = $context->set_debug($debug_level);

$return = $context->set_strip($to_strip_or_not_to);

$return = $context->set_dir($directory);

$return = $context->set_value($name, $value);

$subcontext = $context->loop_iteration($loop_name);

$output = Text::Tmpl::parse_file($context, $template_filename);

$output = Text::Tmpl::parse_string($context, $template);

Text::Tmpl::destroy($context);

DESCRIPTION

Design goals

simplicity, reusability, speed, complete separation of logic from formatting.

Feature set

variables, loops, conditionals, extensibility of tags, includes, arbitrary delimiters.

Usage

For starters, make sure you 'use Text::Tmpl'.

Each function is described below:

Text::Tmpl::init

This function initializes the library. It allocates and returns the "global" context structure, and also configures all of the default tag behavior.

Text::Tmpl::set_delimiters

This function lets you change the delimiters marking the beginning and end of a tag (by default, these are "<!--#" and "-->". There is an arbitrary limit of 6 characters on these strings.

Text::Tmpl::set_value

This function stores the name=value pair in the current context.

Text::Tmpl::set_debug

This function sets the debugging level (from 0 = silent to 2 = verbose). Note that debugging output hasn't been written yet - this is just a placeholder.

Text::Tmpl::set_strip

This function enables or disables the newline stripping feature. If enabled, the parser removes a single newline (if present) from after any tag.

Text::Tmpl::set_dir

This function sets the directory where templates will be sought, both by parse_file and by the include tag. Search order is always current directory then this searched directory.

Text::Tmpl::loop_iteration

This function adds an iteration to the loop named loop_name, and returns a unique context for that loop iteration.

Text::Tmpl::parse_file

This function opens $template_filename, and parses the contents of that file as a template, returning the output.

Text::Tmpl::parse_string

This function parses template directly, in the same way that Text::Tmpl::parse_file does.

Text::Tmpl::register_simple

This function registers a new simple tag named $name, which when encountered will cause the parser to call $coderef. See template_extend(1) for the gory details.

Text::Tmpl::register_pair

This function registers a new tag pair $open_name/$close_name, which when encountered will cause the parser to call $coderef. See template_extend for the gory details.

Text::Tmpl::destroy

This function blows away all of the memory allocated within the given context. You should really *only* call this on the context returned by Text::Tmpl::init, and only at the end of your code.

RETURN VALUES

All of the above functions which return numeric values will return 0 if they fail, or 1 otherwise. The ones which return contexts will return undef if they fail, or a valid pointer otherwise.

BUGS

Got the OO-style notation to work, but not for all functions (the others still cause nasty core dumps).

AUTHOR

J. David Lowe, dlowe@webjuice.com

SEE ALSO

libtmpl(1), template_syntax(1), template_extend(1)