Sly*_*Sly 5 perl templates toolkit
我正在使用 perl 中的 TT,并尝试插入模板并处理变量,该变量本身包含 TT 指令。
所以,在脚本中我写的是这样的:
$var{descr} = "[% pid = 1; INSERT plink.par %]";
Run Code Online (Sandbox Code Playgroud)
然后在 TT 模板中(收到 \%var):
[% BLOCK parsedDescr %]
[% descr %]
[% END %]
<p>[% INCLUDE parsedDescr %]
Run Code Online (Sandbox Code Playgroud)
我期望 pid 变量设置为“1”,并插入 plink.par 文件。但相反,我在 html 页面上得到了变量 descr 的确切内容:
[% pid = 1; INSERT plink.par %]
Run Code Online (Sandbox Code Playgroud)
即,该变量未被 TT 处理。
如何让 TT 处理其内容?
您可以使用eval 过滤器:
<p>[% descr | eval %]
Run Code Online (Sandbox Code Playgroud)
从链接的联机帮助页:
eval 过滤器将块评估为模板文本,处理嵌入其中的任何指令。这允许模板变量包含模板片段,或者提供某种方法从外部源(例如数据库)返回模板片段,然后可以根据需要在模板中进行处理。