Template::Alloy::Compile(3pm) | User Contributed Perl Documentation | Template::Alloy::Compile(3pm) |
Template::Alloy::Compile - Compile role - allows for compiling the AST to perl code
The Template::Alloy::Compile role allows for taking the AST returned by the Parse role, and translating it into a perl code document. This is in contrast Template::Alloy::Play which executes the AST directly.
A template that looked like the following:
Foo [% GET foo %] [% GET bar %] Bar
would parse to the following perl code:
# Generated by Template::Alloy::Compile v1.001 on Thu Jun 7 12:58:33 2007 # From file /home/paul/bar.tt my $blocks = {}; my $meta = {}; my $code = sub { my ($self, $out_ref, $var) = @_; $$out_ref .= 'Foo'; # "GET" Line 2 char 2 (chars 6 to 15) $var = $self->play_expr(['foo', 0]); $$out_ref .= defined($var) ? $var : $self->undefined_get(['foo', 0]); # "GET" Line 3 char 2 (chars 22 to 31) $var = $self->play_expr(['bar', 0]); $$out_ref .= defined($var) ? $var : $self->undefined_get(['bar', 0]); $$out_ref .= 'Bar'; return 1; }; { blocks => $blocks, meta => $meta, code => $code, };
As you can see the output is quite a bit more complex than the AST, but under mod_perl conditions, the perl will run faster than playing the AST each time.
Paul Seamons <paul@seamons.com>
This module may be distributed under the same terms as Perl itself.
2022-10-16 | perl v5.36.0 |