]> mj.ucw.cz Git - temple.git/commitdiff
Added a couple of comments on the new features
authorMartin Mares <mj@ucw.cz>
Wed, 18 Aug 2010 15:31:56 +0000 (17:31 +0200)
committerMartin Mares <mj@ucw.cz>
Wed, 18 Aug 2010 15:31:56 +0000 (17:31 +0200)
test

diff --git a/test b/test
index 67269b096f1299cc85633ef03614db1a278ac95d..0cff4b173f971f30938f3a568ba7f7408c5a0696 100644 (file)
--- 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.