如何将模板传递给模板工具包函数中的子例程

Eag*_*gle 2 perl template-toolkit

我的文件foo.tt我想写这样的东西:

[% INCLUDE header('str', 1, 2, 3, 5, 10) %]
Run Code Online (Sandbox Code Playgroud)

我的目标是做一些字符串操作海峡,然后用的foreach/用于遍历各地的数字.

不幸的是,我无法发现模板工具包中的这种语法是允许的.

什么是模板工具包为什么将参数传递给子例程?

有什么想法怎么做?

yst*_*sth 5

您可以传递变量,但需要为它们命名.例:

outer.tt2:

[% INCLUDE header.tt2 header_string="str", items=[ 1, 2, 3, 5, 10 ] -%]
Run Code Online (Sandbox Code Playgroud)

header.tt2:

String: [% header_string %]
[% FOREACH item IN items -%]
Item: [% item %]
[% END -%]
Run Code Online (Sandbox Code Playgroud)

输出:

String: str
Item: 1
Item: 2
Item: 3
Item: 5
Item: 10
Run Code Online (Sandbox Code Playgroud)