Something I'm developing at the moment has a need for a mini-language, something that's quick and easy to use. In order to avoid reinventing wheels I decided to use TT2 syntax if possible.
The one problem I'm having with this is that I need to be able to process multiple templates whilst retaining state, effectively running multiple scripts as if they were one large script. In order to test if TT2 would allow this I wrote the following code:
#!/usr/bin/perl
use strict;
use warnings;
use Template;
# Initialise the variable hash, and create us a TT2 obj.
my $vars = { a => 0};
my $tt2 = Template->new();
# Very simple template, should increment TT2's 'a' variable.
my $template = "[% SET a=a+1 %] A is now [% a %]\n";
# Loop through, see if we can keep the new value of a.
for (1..5) {
$tt2->process (
\$template,
$vars
);
}
If anyone can suggest any way to keep the value of the variables between each call of process() in the above code I'd be a very happy little monk.