GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Template::Alloy::Compile(3) User Contributed Perl Documentation Template::Alloy::Compile(3)

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.

Translate compile_RAWPERL to actually output rather than calling play_RAWPERL.

"compile_tree"
Takes an AST returned by parse_tree and translates it into perl code using functions stored in the $DIRECTIVES hashref.

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.

"compile_expr"
Takes an AST variable or expression and returns perl code that can lookup the variable.

Paul Seamons <paul@seamons.com>

This module may be distributed under the same terms as Perl itself.
2020-07-11 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.