| HTML-Template-Compiled documentation | Contained in the HTML-Template-Compiled distribution. |
HTML::Template::Compiled::Classic - Provide the classic functionality like HTML::Template
use HTML::Template::Compiled::Classic compatible => 1;
my $htcc = HTML::Template::Compiled::Classic->new(
# usual parameters for HTML::Template::Compiled
);
This class provides features which can not be used together with features from HTML::Template::Compiled. These are:
If you want to use
<TMPL_VAR NAME="some.var.with.dots">
you cannot use the dot-feature
<TMPL_VAR NAME="some.hash.keys">
at the same time.
In HTML::Template, the following works:
my $ht = HTML::Template->new(
scalarref => \"<TMPL_VAR foo>",
);
$ht->param(foo => sub { return "bar" });
print $ht->output; # prints 'bar'
This doesn't work in HTML::Template::Compiled (in the past it did, but as of HTC version 0.70 it won't any more, sorry).
returns HTML::Template::Compiled::Compiler::Classic
gets the var name (parsed out of NAME="foo.bar" and returns
if the string is a valid var name
| HTML-Template-Compiled documentation | Contained in the HTML-Template-Compiled distribution. |
package HTML::Template::Compiled::Classic; # $Id: Classic.pm 746 2006-10-11 20:54:09Z tinita $ use strict; use warnings; our $VERSION = "0.05"; use base 'HTML::Template::Compiled'; use HTML::Template::Compiled::Compiler::Classic; sub compiler_class { 'HTML::Template::Compiled::Compiler::Classic' } sub _get_var_global_sub { my ($self, $P, $ref, $final, @paths) = @_; my $key = $paths[0]->[1]; my $stack = $self->get_globalstack || []; for my $item ( $ref, reverse @$stack ) { next unless exists $item->{$key}; my $var = $item->{$key}; ref $var eq 'CODE' and $var = $var->(); return $var; } return; } # returns if the var is valid sub validate_var { return $_[1] !~ tr#a-zA-Z0-9._/-##c; } 1; __END__