Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
MicroMason::TextTemplaUser)Contributed Perl DocumenMicroMason::TextTemplate(3)

       Text::MicroMason::TextTemplate -	Alternate Syntax like Text::Template

       Instead of using	this class directly, pass its name to be mixed in:

	 use Text::MicroMason;
	 my $mason = Text::MicroMason::Base->new( -TextTemplate	);

       Use the standard	compile	and execute methods to parse and evalute

	 print $mason->compile(	text=>$template	)->( @%args );
	 print $mason->execute(	text=>$template, @args );

       Text::Template provides a syntax	to mix Perl into a text	template:

	 { my $hour = (localtime)[2];
	   my $daypart = ( $hour > 11 )	? 'afternoon' :	'morning';
	 '' }
	 Good {	$daypart }, { $name }!

       This mixin class	overrides several methods to allow MicroMason to
       emulate the template syntax and some of the other features of

   Compatibility with Text::Template
       This is not a drop-in replacement for Text::Template, as	the Perl
       calling interface is quite different, but it should be able to process
       most existing templates without major changes.

       This should allow current Text::Template	users to take advantage	of
       MicroMason's one-time compilation feature, which	in theory could	be
       faster than Text::Template's repeated evals for each expression.	 (No
       benchmarking yet.)

       Contributed patches to more closely support the syntax of
       Text::Template documents	would be welcomed by the author.

   Template Syntax
       The following elements are recognized by	the TextTemplate lexer:

       o   literal_text

	   Anything not	specifically parsed by the below rule is interpreted
	   as literal text.

       o   { perl_expr }

	   A Perl expression to	be interpolated	into the result.

	       Good { (localtime)[2]>11	? 'afternoon' :	'morning' }.

	   The block may span multiple lines and is scoped inside a "do"
	   block, so it	may contain multiple Perl statements and it need not
	   end with a semicolon.

	       Good { my $h = (localtime)[2]; $h > 11 ?	'afternoon'
						      :	'morning'  }.

	   To make a block silent, use an empty	string as the final expression
	   in the block.

	       { warn "Interpreting template"; '' }
	       Hello there.

	   Although the	blocks are not in the same a lexical scope, you	can
	   use local variables defined in one block in another:

	       { $phase	= (localtime)[2]>11 ? 'afternoon' : 'morning'; '' }
	       Good { $phrase }.

   Argument Passing
       Like Text::Template, this package clobbers a target namespace to	pass
       in template arguments as	package	variables. For example,	if you pass in
       an argument list	of "foo	=> 23",	it will	set the	variable $foo in your

       The strict pragma is disabled to	facilitate these variable references.

       Internally, this	module inherits	this functionality from	the
       PassVariables mixin. If you are using the TextTemplate mixin, do	not
       also specify the	PassVariables mixin or it will be included twice. For
       more information, see Text::MicroMason::PassVariables.

   Supported Attributes
	   Target package namespace.

   Private Methods
	   If a	package	has not	been specified,	this method generates a	new
	   package namespace to	use only for compilation of a single template.

	   Lexer for matched braces - produces only text and expr tokens. Uses

       The interface being emulated is described in Text::Template.

       For an overview of this templating framework, see Text::MicroMason.

       This is a mixin class intended for use with Text::MicroMason::Base.

       For distribution, installation, support,	copyright and license
       information, see	Text::MicroMason::Docs::ReadMe.

perl v5.32.1			  2007-01-29	   MicroMason::TextTemplate(3)


Want to link to this manual page? Use this URL:

home | help