首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Perl的模板工具包中仅呈现特定的` `BLOCK`‘?

如何在Perl的模板工具包中仅呈现特定的` `BLOCK`‘?
EN

Stack Overflow用户
提问于 2009-08-15 07:29:42
回答 1查看 445关注 0票数 5

如何在模板中仅呈现特定的BLOCK

假设我在text.tt中有这样一个BLOCK,一个Template Toolkit文件:

代码语言:javascript
复制
[% BLOCK someblock %] some block test blah blah blah [% END %]

我希望能够使用process()来处理这一部分:

代码语言:javascript
复制
$tt->process("text.tt/someblock", {...}, {...});

这是处理这个问题的正确方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-15 12:18:06

我想你可能想要的是EXPOSE_BLOCKS选项吧?

代码语言:javascript
复制
use strict;
use warnings;
use Template;

my $tt = Template->new({
    INCLUDE_PATH  => '.',
    EXPOSE_BLOCKS => 1,
});

$tt->process( 'test.tt/header', { tit => 'Weekly report' } );

for my $day qw(Mon Tues Weds Thurs Fri Sat Sun) {
    $tt->process( 'test.tt/body', { day => $day, result => int rand 999 } );
}

$tt->process( 'test.tt/footer', { tit => '1st Jan 1999' } );

test.tt:

代码语言:javascript
复制
[% BLOCK header %]
[% tit %]
[% END %]

[% BLOCK body %]
* Results for [% day %] are [% result %]
[% END %]

[% BLOCK footer %]
Correct for week commencing [% tit %]
[% END %]

将生成此报告(具有随机数):

每周报告

星期一的

  • 结果是728

星期二的

  • 结果是363

星期三的

  • 结果是772
  • 星期四的结果是864

<代码>H113星期五的结果是490<代码>H214<代码>H115星期六的结果是88<代码>H216<代码>H117太阳的结果是887<代码>H218<代码>F219

正确用于1999年1月1日开始的一周

希望这能有所帮助。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1281391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档