use HTML::Template;
$t = HTML::Template->new(
filehandle => *DATA,
die_on_bad_params => 0 );
$t->{options}->{loop_context_vars} = 1;
# turned on so I can use
$t->{options}->{global_vars} = 1;
# turned on so I can have a global var appear inside a loop
$t->param( foo => [ { baz => 1 }, { baz => 2 }, { baz => 3 } ] );
# some loop data
$t->param( bar => 'global var!' );
# a global variable
print $t->output();
__DATA__
first!
*