HTML::Template::Compiled::Reference(3)

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)