Template::Alloy::Compile man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

Template::Alloy::CompiUser)Contributed Perl DocumenTemplate::Alloy::Compile(3)

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

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
       ยท   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 at seamons dot com>

LICENSE
       This module may be distributed under the same terms as Perl itself.

perl v5.14.1			  2008-09-17	   Template::Alloy::Compile(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net