From 802e41a09a8e602a8f221589eeae099266d9353e Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Wed, 18 Aug 2010 17:31:56 +0200 Subject: [PATCH] Added a couple of comments on the new features --- test | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/test b/test index 67269b0..0cff4b1 100644 --- a/test +++ b/test @@ -19,14 +19,15 @@ won't be broken@ @# If you want to write the "@" character, just write it twice: @@ -@# You can embed any perl code in your text: +@# You can embed any perl code in your text (use the "out" function to +@# write to the templater's output): @[foreach $x (1..10) { out "$x "; } ] @# Or if you use @{...}, then the value of the last expression executed @# gets printed automatically: @{"1+2+3 = " . (1+2+3)} -@# You can also interpolate perl variables by using @$variable: +@# You can also interpolate perl variables in the T:: namespace by using @$variable: I was run as @$0. @# It is possible to call any perl functions @@ -37,6 +38,10 @@ I was run as @$0. @# Or do the same with parameters running up to the end of the line: @out "Four", "Five", "Six\n" +@# Of course you can define your own functions (they live in the T:: namespace) +@[ sub quork($) { my ($arg) = @_; return "Thus quoth the Penguin: $arg"; } ] +@quork("404!") + @# There are also some conditionals (you can use any perl expressions): @if 1 @if 0 @@ -68,5 +73,18 @@ c EOF ) +@# The template engine can be run from any Perl code (including Perl embedded +@# in another template), e.g., in a templated CGI script. +@[ + UCW::Temple::process_string('I still see I was run as @$0'); +] + +@# Additionally, you can pass a hash of arguments to process_string() and use +@# the @(name) construct to expand them: +@[ + UCW::Temple::process_string('@(count) upon a @(time) dreary...', + { 'count' => 'Once', 'time' => 'midnight' } ); +] + @# We are done: Finis. -- 2.39.5