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

NTS::Template - Fast and small template system

Description

Formerly Ananke::Template, this Template System is based in Template ToolKit. Very small compared with Template Toolkit, and 100% compatible with mod_perl 2.

Speedy:

$ cd /proc ; grep name cpuinfo
model name      : AMD Athlon(tm) XP 1700+

$ ./bench_templ
Benchmark: timing 5000 iterations of NTS::Template, Template ToolKit...
NTS::Template:  9 wallclock secs ( 9.48 usr +  0.11 sys =  9.59 CPU) @ 521.38/s (n=5000)
Template ToolKit: 25 wallclock secs (24.84 usr +  0.16 sys = 25.00 CPU) @ 200.00/s (n=5000)

Memory:

$ ./GTop -m NTS::Template

NTS::Template
      Size     Shared       Diff
   2564096    1642496     114688 (bytes)

$ ./GTop -m Template

Template
      Size     Shared       Diff
   3960832    1683456    1470464 (bytes)

SYNOPSIS

no comment

TO DO

no comment

DIRECTIVE

IF, ELSIF OR ELSEIF, UNLESS

try:

$vars->{test1} = "ok";
$vars->{test2}->{test2} = "ok";
$vars->{test3} = 1;

[% IF test1 %] ok, test1 [% END %]
[% IF test2.test2 %] ok, test2.test2 [% END %]
[% IF test1 == test2.test2 %] ok, test1 == test2.test2 [% END %]
[% IF test1 == "ok" %] ok, test1 == "ok" [% END %]
[% IF test3 == 1 %] ok, test3 [% END %]
[% IF test1 AND test2.test2 AND test3 %] ok, test1 AND test2.test2 AND test3 [% END %]
[% IF test1 OR test3 %] ok, test1 OR test3 [% END %]
[% IF test1 == test3 %] ok, test1 == test3 [% ELSE %] fail [% END %]
[% IF test1 == test3 %] ok, test1 == test3 
[% IF test1 != "fail" %] ok, test1 != "ok" [% ELSE %] fail [% END %]
[% IF test2.test2 != "fail" %] ok, test2.test2 != "ok" [% ELSE %] fail [% END %]

[% IF test1 == test3 %] ok, test1 == test3
[% ELSIF test2.test2 == test3 %] ok, test2.test2 == test3 
[% ELSE %] fail [% END %]

[% UNLESS test1 == "fail" %] fail, test == "fail" [% ELSE %] ok [% END %]

return:

ok, test1 
ok, test2.test2 
ok, test1 == test2.test2 
ok, test1 == "ok" 
ok, test3 
ok, test1 AND test2.test2 AND test3 
ok, test1 OR test3 
fail
ok, test1 != "ok" 
ok, test2.test2 != "ok" 
fail
fail, test == "fail" 

FOREACH

Repeat the enclosed FOREACH ... END block for each value in the list.

[% FOREACH variable = list %]                 
    content... 
    [% variable %]
[% END %]

# or

[% FOREACH i = list_chn_grp %]
    [% count++ %]
    [% IF count % 2 %] [% bgcolor = "#FFFFFF" %]
    [% ELSE %] [% bgcolor = "#EEEEEE" %]
    [% END %]

    [% i.bgcolor %]
[% END %]

FOR

[% FOR i=1;i<=12;i++ %]
    [% i=1 %]
[% END %]

VARIABLES

[% var = 'text' %]
[% var %]

&PRINTF

[% var = 2 %]
[% &PRINTF('%02d',var) %]

&ESCAPE/&UNESCAPE

[% var = "http://www.nattis.com.br?a=b&c=d&e=f" %]
[% &ESCAPE(var,'') %]
[% &UNESCAPE(var,'') %]

Authors

  • Udlei Nattis E<lt>unattis (at) nattis.comE<gt>
    http://www.nattis.com