in reply to HTML::Template : How to separate code and html with lesser maintenance issues
You could choose to create 3 different templates for select, continue or denied.
Do you want (simple) logic? Try HTML::Template::Expr.
However, you may wonder if you need it. Another nice trick you can do with HTML::Template; call a perl function by using parameters, so you don't even need to register a function like in HTML::Template::Expr.
So no ifs are needed in your template (i try to put as less logic as possible in my templates as i can)my $tmpl = ""; my $item = "CONTINUE"; if ($item eq "SELECT") { $tmpl = "select.tmpl"; } elsif ($item eq "CONTINUE") { $tmpl = "continue.tmpl"; } elsif ($item eq "DENIED"){ $tmpl = "denied.tmpl"; } my $template = HTML::Template->new( filename => $tmpl );
Do you want (simple) logic? Try HTML::Template::Expr.
However, you may wonder if you need it. Another nice trick you can do with HTML::Template; call a perl function by using parameters, so you don't even need to register a function like in HTML::Template::Expr.
# template.tmpl <TMPL_VAR NAME="function_xyz"> # Perl: my $tmpl = HTML::Template->new( filename => 'template.tmpl' ); my @all_params = $tmpl->param(); foreach (@all_params) { if ($_ =~ /^function_/i) { my ($a,$b) = split (/_/,$_,2); $tmpl->param($_ => $b() ); } } sub xyz { return "template value needed"; }
"We all agree on the necessity of compromise. We just can't agree on when it's necessary to compromise." - Larry Wall.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: HTML::Template : How to separate code and html with lesser maintenance issues
by blazar (Canon) on Nov 21, 2006 at 10:38 UTC | |
Re^2: HTML::Template : How to separate code and html with lesser maintenance issues
by tinita (Parson) on Nov 21, 2006 at 12:25 UTC | |
by jbrugger (Parson) on Nov 21, 2006 at 12:48 UTC |
In Section
Seekers of Perl Wisdom