这个问题是关于从模板::工具包(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>
….
将宏直接放到我想使用它的文件中,一切都按预期工作。
什么是包含来自不同文件的宏的“正确”方式?
谢谢 - 你是我的英雄!应该仔细阅读文件;-) – hoppfrosch
我可以推荐一本[好书](http://shop.oreilly.com/product/9780596004767.do):-) –