NAME

HTML::Template::Compiled::Reference - A quick reference for HTML::Template::Compiled syntax

TAGSTYLES

<TMPL_IF var><TMPL_VAR foo></tmpl_if var>
<!-- TMPL_IF var --><!-- TMPL_VAR foo --><!-- /tmpl_if var -->
<%if var %><%= foo %><%/if var %>

Optional tagstyle 'tt':

[%if var %][%= foo %][%/if var %]

ACCESSING VARIABLES

<%= _.foo %>
outputs foo in the cuurent position of the stash and is the same as
<%= foo %>

<%= .config.url %>
goes to root of parameter stash; like $params->{config}->{url}

<%= ..foo %>
goes one level up in stash

<%= list[3].keyname.method %>
acts like: $stash->[3]->{keyname}->method

TAGS

VAR
<%var foo%> or <%= foo%>
IF, IF_DEFINED, UNLESS, ELSIF, ELSE

conditions like in Perl

LOOP, WHILE, EACH

for-loop and while-loop like in Perl.

<%loop cds%><%= __counter__%>. Title: <%= _.title%><%/loop cds%>
<%loop cds join=", " %><%= _.title%><%/loop cds%>
<%while resultset.next%><%= __counter__%>. <%= _.foo %><%/while %>
<%each hashref%><%= __key__ %>=<%= __value__ %><%/each %> (sorted alphanumeric)
<%each hashref sort=alpha %><%= __key__ %>=<%= __value__ %><%/each %> (sorted alphanumeric)
<%each hashref sort=num %><%= __key__ %>=<%= __value__ %><%/each %> (sorted numeric)
<%each hashref sort=0 %><%= __key__ %>=<%= __value__ %><%/each %> (not sorted)
WITH
<%with cds[0].artist.fanclub%><%= _.address%><%= _.homepage%><%/with %>
INCLUDE, INCLUDE_VAR
<%include template.htc%>
<%include_var param_with_template_name%>
COMMENT, VERBATIM, NOPARSE
<%comment explanation %>
This will not appear in the rendered template.
blah blah...
<%/comment explanation %>
SWITCH, CASE
<%switch .config.language%>
<%case de%>Hallo
<%case es%>Hola
<%case en,default%>Hello
<%/switch .config.language%>
PERL

See section Perl in HTML::Template::Compiled

ATTRIBUTES

Each attribute can be written as

attribute=foo
attribute="some thing"
attribute='some "thing"'
NAME

You can omit the 'name=' here.

<%if var%>var<%elsif name=var2%>var4<%/if%>

Can be used in all tags.

ESCAPE
<%= message escape=html %>
<%= params escape=url %>
<%= params escape=js %>
<%= some_var escape=dump|html%>

Can be used in VAR-tags.

DEFAULT
<%= this.var.might_be_undef default="my fault" %>

Can be used in VAR-tags.

ALIAS
<%loop cds alias="cd" %><%= $cd.title %><%/loop cds %>

Can be used in LOOP and WHILE. Works like "SET_VAR" and is short for

<%loop cds %><%set_var cd value=_ %><%= cd.title %><%/loop cds %>

Useful for nested loops.

SET_VAR
<%set_var myvar value=.another.var %>
<%set_var myvar2 expr="60 * 60 * 24" %>

This creates a variable similar to a package var with local() in perl.

USE_VARS
<!-- recognize myvar and myvar2 as variables not parameter stash -->
<%use_vars myvar,myvar2 %>
myvar: <%= myvar %>
JOIN
<%loop cds join=", " %><%= _.title%><%/loop cds%>

can be used in LOOP

BREAK
<%loop cds break="3" %>
<%= _.title%><%if __break__ %>\n</%if %>
<%/loop cds%>

Sets __break__ to 1 every xth loop. Can be used in LOOP, WHILE and EACH

OPTIONS

(loop)_context_vars
<%= __index__         %> the current loop index starting at 0
<%= __counter__       %> the current loop index starting at 1
<%= __first__         %> true if first iteration
<%= __last__          %> true if last iteration
<%= __odd__           %> true if __counter__ is odd
<%= __inner__         %> true if not last or first iteration
<%= __key__           %> the key of an EACH iteration
<%= __value__         %> the value of an EACH iteration
<%= __break__         %> see L<"BREAK"> above
<%= __filename__      %> filename of current template (since 0.91_001)
<%= __filenameshort__ %> short filename of current template (since 0.91_001)