2012-05-22 54 views
4

我正在使用來自perl的TT,並嘗試插入模板並處理一個變量,該變量本身包含TT指令。Template :: Toolkit變量處理

所以,在劇本我寫水木清華這樣的:

$var{descr} = "[% pid = 1; INSERT plink.par %]"; 

然後在TT模板(其中收到\%VAR):

[% BLOCK parsedDescr %] 
[% descr %] 
[% END %] 
<p>[% INCLUDE parsedDescr %] 

而且我期待PID變量被設置爲「1」,並插入plink.par文件。 而是我得到我的HTML頁面上的可變DESCR的確切內容:

[% pid = 1; INSERT plink.par %] 

即,這個變量撐通過TT未處理。

如何讓TT處理它的內容?

回答

4

可以使用eval filter

<p>[% descr | eval %] 

從鏈接手冊頁:

的EVAL過濾評估塊爲模板文本,處理嵌入其中的任何 指令。這允許模板變量爲 包含模板片段,或者爲 提供的某種方法返回來自外部源(如 數據庫)的模板片段,然後可以根據需要在模板中處理該模板片段。