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


Manual Reference Pages  -  TEMPLATE::ALLOY::COMPILE (3)

.ds Aq ’

NAME

Template::Alloy::Compile - Compile role - allows for compiling the AST to perl code

CONTENTS

DESCRIPTION

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.

TODO

o Translate compile_RAWPERL to actually output rather than calling play_RAWPERL.

ROLE METHODS

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.

AUTHOR

Paul Seamons <paul@seamons.com>

LICENSE

This module may be distributed under the same terms as Perl itself.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 TEMPLATE::ALLOY::COMPILE (3) 2013-09-20

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