2010-01-15 33 views
6

是否可以在模板工具包中反轉匿名列表?如何反轉模板工具箱中的匿名列表?

例如

[% FOREACH month IN [1..12].reverse %] 
    [% month %] 
[% END %] 

(除非不起作用)。

只是想知道是否有一個不使用變量或明確輸入數組的方法。

+0

看起來像某人需要寫一個Template :: Plugin :: Autobox。 – oeuftete 2010-01-15 17:24:58

回答

10

對不起,沒有。能夠原位實例化匿名數組是TT解析器處理的特殊情況。你不能像在普通的Perl中那樣對它們進行操作,而無需分配給指定變量的中間步驟。

編輯:你甚至不能傳遞一個子程序嘗試使用像這樣:

[% FOREACH month IN my_reverse([1..12]) %] 
    [% month %] 
[% END %] 

也可以嘗試使用對象的方法上:

[% FOREACH month IN testObj.my_reverse([1..12]) %] 
    [% month %] 
[% END %] 

他們會編譯,但在每種情況下,FOREACH構造會看到鏈的頭部,例如在第一種情況下參考CODE,在第二種情況下參考有福的物體。

+0

感謝亞當,這是非常有用的知道。 – aidan 2010-01-17 20:55:10

0

我有點新的,但你看這個:

[%月= [ '月', '月', '月',...];個月

[%FOREACH I = [(months.size-1)-1 .. 0]%] ##計數-11〜0爲12個元素 [%個月[(的##陣列I - 1)] ##將i轉換爲正數 - 顯示月份[11],月份[10] ...月份[0]

0
<!-- show 2010 2009 2008 2007 --> 
[% SET startyear = 2007 %] 
[% SET endyear = 2010 %] 
[% SET allyears = [ startyear .. endyear ] %] 
[% FOREACH year IN alleyears.reverse %] 
    <li>[% year %]</li> 
[% END %] 
相關問題