假设我的模板中有以下内容:
[%- pages = [ 'one', 'two', 'three' ] -%]
<p>Go to page [%- ... -%]</p>
假设EVAL_PERL
没有设置(即我不能使用块[%- PERL -%]
),我需要在[%- ... -%]
上面放什么以获得以下输出?
<p>Go to page "a randomly picked element of pages"</p>
假设我的模板中有以下内容:
[%- pages = [ 'one', 'two', 'three' ] -%]
<p>Go to page [%- ... -%]</p>
假设EVAL_PERL
没有设置(即我不能使用块[%- PERL -%]
),我需要在[%- ... -%]
上面放什么以获得以下输出?
<p>Go to page "a randomly picked element of pages"</p>
默认情况下 Template没有任何支持rand
,因此您必须通过其他代码(如Slash)导入它或使用Template::Plugin::Math,例如:
[%- USE Math -%]
[%- pages = [ 'one', 'two', 'three' ] -%]
<p>Go to page [%- pages.${ Math.rand(pages.size) } -%]</p>
输出:
$ tpage test.html
<p>Go to page three</p>
如果我必须做任何复杂的事情,我只需使用[%PERL%]
部分并跳过模板工具包语法。
此外,我在控制器中尽可能多地计算并传入要使用的值的数据结构。我尽量不在模板中选择值或创建新值。将逻辑移入模板后,当您有另一组模板时,您必须重新定义它。