Perl Diver 2.31
Main Environment Variables Perl Default Values Perl Config - Summary Perl Config - Full Installed Modules List Directory uptime Docs

Module Documentation
Details and documentation about a specific module, including version and documentation (if available). Note that while links to perldoc.com and search.cpan.org are provided, the module may be part of a larger distribution. If you reach a File Not Found page on either site, please try the parent module.

Template::Parser

Name Template::Parser
Version 2.89
Located at /usr/lib64/perl5/vendor_perl
File /usr/lib64/perl5/vendor_perl/Template/Parser.pm
Is Core No
Search CPAN for this module Template::Parser
Documentation Template::Parser
Module Details Template::Parser

NAME

Template::Parser - LALR(1) parser for compiling template documents


SYNOPSIS

    use Template::Parser;
    $parser   = Template::Parser->new(\%config);
    $template = $parser->parse($text)
        || die $parser->error(), "\n";


DESCRIPTION

The Template::Parser module implements a LALR(1) parser and associated methods for parsing template documents into Perl code.


PUBLIC METHODS

new(\%params)

The new() constructor creates and returns a reference to a new Template::Parser object.

A reference to a hash may be supplied as a parameter to provide configuration values. See CONFIGURATION OPTIONS below for a summary of these options and the Template::Manual::Config manpage for full details.

    my $parser = Template::Parser->new({
        START_TAG => quotemeta('<+'),
        END_TAG   => quotemeta('+>'),
    });

parse($text)

The parse() method parses the text passed in the first parameter and returns a reference to a hash array of data defining the compiled representation of the template text, suitable for passing to the the Template::Document manpage new() constructor method. On error, undef is returned.

    $data = $parser->parse($text)
        || die $parser->error();

The $data hash reference returned contains a BLOCK item containing the compiled Perl code for the template, a DEFBLOCKS item containing a reference to a hash array of sub-template BLOCKs defined within in the template, and a METADATA item containing a reference to a hash array of metadata values defined in META tags.


CONFIGURATION OPTIONS

The Template::Parser module accepts the following configuration options. Please see the Template::Manual::Config manpage for further details on each option.

START_TAG, END_TAG

The START_TAG and END_TAG options are used to specify character sequences or regular expressions that mark the start and end of a template directive.

    my $parser = Template::Parser->new({
        START_TAG => quotemeta('<+'),
        END_TAG   => quotemeta('+>'),
    });

TAG_STYLE

The TAG_STYLE option can be used to set both START_TAG and END_TAG according to pre-defined tag styles.

    my $parser = Template::Parser->new({
        TAG_STYLE => 'star',     # [* ... *]
    });

PRE_CHOMP, POST_CHOMP

The PRE_CHOMP and POST_CHOMP can be set to remove any whitespace before or after a directive tag, respectively.

    my $parser = Template::Parser-E<gt>new({
        PRE_CHOMP  => 1,
        POST_CHOMP => 1,
    });

INTERPOLATE

The INTERPOLATE flag can be set to allow variables to be embedded in plain text blocks.

    my $parser = Template::Parser->new({
        INTERPOLATE => 1,
    });

Variables should be prefixed by a $ to identify them, using curly braces to explicitly scope the variable name where necessary.

    Hello ${name},
    The day today is ${day.today}.

ANYCASE

The ANYCASE option can be set to allow directive keywords to be specified in any case.

    # with ANYCASE set to 1
    [% INCLUDE foobar %]    # OK
    [% include foobar %]    # OK
    [% include = 10   %]    # ERROR, 'include' is a reserved word

GRAMMAR

The GRAMMAR configuration item can be used to specify an alternate grammar for the parser. This allows a modified or entirely new template language to be constructed and used by the Template Toolkit.

    use MyOrg::Template::Grammar;
    my $parser = Template::Parser->new({
        GRAMMAR = MyOrg::Template::Grammar->new();
    });

By default, an instance of the default the Template::Grammar manpage will be created and used automatically if a GRAMMAR item isn't specified.

DEBUG

The DEBUG option can be used to enable various debugging features of the Template::Parser module.

    use Template::Constants qw( :debug );
    my $template = Template->new({
        DEBUG => DEBUG_PARSER | DEBUG_DIRS,
    });


AUTHOR

Andy Wardley <abw@wardley.org> http://wardley.org/


COPYRIGHT

Copyright (C) 1996-2007 Andy Wardley. All Rights Reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The main parsing loop of the Template::Parser module was derived from a standalone parser generated by version 0.16 of the Parse::Yapp module. The following copyright notice appears in the Parse::Yapp documentation.

    The Parse::Yapp module and its related modules and shell
    scripts are copyright (c) 1998 Francois Desarmenien,
    France. All rights reserved.
    You may use and distribute them under the terms of either
    the GNU General Public License or the Artistic License, as
    specified in the Perl README file.


SEE ALSO

Template, the Template::Grammar manpage, the Template::Directive manpage

Perl Diver brought to you by ScriptSolutions.com © 1997- 2024