Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Partially process'ing Template::Toolkit templates

by unlinker (Monk)
on Nov 15, 2012 at 01:28 UTC ( #1003912=perlquestion: print w/replies, xml ) Need Help??
unlinker has asked for the wisdom of the Perl Monks concerning the following question:

Venerable Monks,

Is it possible to process a TT template so that only the INCLUDE (or the INSERT) directives are processed? For example if my template (say is :

Hi [% name %], Some Text here.... [% INCLUDE %] Some more text here.....
and is:
Product ID: [% product_id %]
I would like to generate the template string:
Hi [% name %], Some Text here.... Product ID: [% product_id %] Some more text here.....

so that only the INCLUDE directive is processed and a new template is generated?

Many Thanks...

Replies are listed 'Best First'.
Re: Partially process'ing Template::Toolkit templates
by roboticus (Chancellor) on Nov 15, 2012 at 02:28 UTC


    I can think of a couple ways to get that result: First, you could put the other parts of your template in a different include file, and INSERT them. Since TT isn't going to do any processing on the inserted files, you will then have a template that you want.

    ----file1---- Hi [% name %], some text here... ----file2---- Some more text here... ----template---- [% INSERT file1 %] [% INCLUDE %] [% INSERT file2 %]

    Alternatively, you could escape out the template sequences in your main template, then when TT processes it, you'd have the template instructions ready.

    It seems odd that you would need that, though. But I've never used it, so it wouldn't be obvious to me in any case.


    When your only tool is a hammer, all problems look like your thumb.

Re: Partially process'ing Template::Toolkit templates
by chromatic (Archbishop) on Nov 15, 2012 at 06:20 UTC

    You can use the TAGS directive to change what TT uses as delimiters; this'll let you write regular templates from templates:

    [% TAGS [- -] %] [% translations.EXPLANATION %]

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1003912]
Approved by muba
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2018-06-23 00:29 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (124 votes). Check out past polls.