[%# Template File %] [% META # META is a kind of a new tag, and stores perl # code for each key needed by the Template. title => sub { use Class::DBI::AutoLoader( %params ); return DATA::Table->retrieve(code=>'A'); } name => sub { return +shift @NAMES || 'Default Name' } %] [% title %] And here goes the template text, and the template [% name %]. #### # Perl File # %parameters are your template parameters, don't care. my $template = new Template( %parameters ); # data will hold template filling data my %data; map { $data{$_} = eval $template->code_for( $_ ) } $template->needed_keys( 'Template.tt' );