Es ist wahrscheinlich am besten um diese Art von Daten in Ihrem Controller zu tun. Die Aufgabe von Template Toolkits ist es wirklich, Dinge auszulegen und hübsch zu machen, keine "Berechnungen" zu machen.
Was Sie wollen, ist etwas mehr wie:
[% SET list = formatter.group_them('namelist.txt') %]
[% FOREACH item IN list %]
[% item.key %]
[% FOREACH name IN item.value %]
[% name %]
[% END %]
[% END %]
Es ist möglich, zu tun, was Sie in einer Vielzahl von Möglichkeiten wollen. Sie können VMethods verwenden http://template-toolkit.org/docs/manual/VMethods.html zu spalten, ein Array zu erstellen, spaltete wieder, bauen einen Hash:
[% data = INSERT 'namelist.txt' %]
[% lines = data.split("\n") %]\
[% list = {} %]
[% FOREACH line IN lines %]
[% pair = line.split(': ') %]
[% city = pair.0; name = pair.1; list.city.push(name) %]
[% END %]
OK, ich muss zugeben, ich würde gedemütigt werden diese erbte ich in einer Vorlage zu sehen. Aber manchmal tun wir Dinge, die andere für einen guten Grund kasteien ... zu der Zeit ... :-)
Ein etwas besserer Ansatz einzusetzen ist
[% RAWPERL %]
Block. Zumindest dann, Sie geben zu, Sie haben Code innerhalb der Vorlage und die Operationen auf natürliche und effiziente Weise.