$ cat sort-list.tt2 [% MACRO blocker BLOCK %] [% FOREACH element IN array.sort('name') %] [% element.name %] [%- END -%] [%- END -%] [%- SET array = [ { name => 'foo', value => 1 }, { name => 'bar', value => 2 }, { name => 'baz', value => 3 } ]; blocker %] [%- SET array = [ { name => 'bar', value => 2 }, ]; blocker %] $ tpage sort-list.tt2 bar baz foo bar