hop*_*sch 4 perl template-toolkit
这个问题是关于Template :: Toolkit(Perl)中宏的用法
我没有编写宏并将它们放入一个单独的文件中,以便在其他几个模板文件中使用它们.
我的宏位于名为macros.tt的单独模板文件中:
----- file macros.tt ------
[% MACRO decorateStatus(status) BLOCK -%]
    [% ico = 'status_unknown' -%]
    [% IF status == "New" -%][% ico = 'status_waiting' -%]
    [% ELSIF status == "Working" -%][% ico = 'status_work' -%]
    [% ELSIF status == "Deleted" -%][% ico = 'status_deleted' -%]
    [% END -%]
    [% status %] <img src="[% c.uri_for('/images/ico/' _ ico _ '.png') %]" text="[% status %]">
[% END-%]
现在我正在尝试在另一个模板中使用此宏 - 但是由于宏未展开而失败:
----- file demo.tt -------
[% INCLUDE macros.tt %]
….
[% status = ‘New’ %]
<td>[% decorateStatus(status) %]</td>
….
将宏直接放在我想要使用它的文件中,一切都按预期工作.
从不同文件中包含宏的"正确"方法是什么?