package Simple::Class; use strict; use warnings; use Class::MethodMaker new_hash_init => 'new', get_set => [qw(age name weight)], ; sub load_data { return [ map { Simple::Class->new({ name => $_, age => int(rand(50))+20, weight => int(rand(150))+20, }) } qw(bob bill brian babette bobo bix) ]; } package main; use strict; use warnings; use Data::Dumper; use Template; my $template = Template->new; $template->process(\*DATA,{people => Simple::Class::load_data}) || die $template->error; __DATA__ [% colors = ['white','gray'] %] [% FOREACH person = people %] [% PROCESS row person = person %] [% END %]
nameageweight
[% BLOCK row %] [% color = colors.shift %] [% person.name %] [% person.age %] [% person.weight %] [% colors.push(color) %] [% END %]