模板工具包在foreach循环后显示结果

时间:2013-03-07 02:13:44

标签: perl template-toolkit

我目前正在使用Template Toolkit,并且在TT之前从未学习或使用过。

例如,我有10个文件,5个文件的日期为dd / mm / 2011年,5个文件的日期为dd / mm / 2012。我只需要展示一年一次。我尝试使用foreach循环但不是显示2011年5次和2012年5次,我希望它只显示1次。

我需要实现的是获得年份并使用它创建一个链接以显示那一年的那些文档。

希望你们明白,并且有些善良的人请帮助我。 = X

1 个答案:

答案 0 :(得分:2)

你在TT中使用了类似的方法,你可以在任何其他编程语言中使用它。记下你看过的最后一年,如果它不同,只打印当前的那个。

以下是一个可以使用tpage运行的简单示例。

$ cat years.tt 
[%- dates = [ '01/11/2012', '01/12/2012', '01/01/2013', '01/02/2013'];
    lastyear = '';
    FOREACH date IN dates;
        bits = date.split('/');
        IF bits.2 != lastyear;
            bits.2 _ "\n";
        END;
        bits.0 _ '/' _ bits.1 _ "\n";
        lastyear = bits.2;
    END -%]
$ tpage years.tt
2012
01/11
01/12
2013
01/01
01/02

但你几乎肯定想考虑将更合理的数据结构传递给TT。