use Template; my $tt = Template-new(); $tt->process( $template_file , { scalar_param => $scalar, array_param => \@array, hash_param => \%hash } ) or die $tt->error(); #### Hello [% name %], how are you doing on this fine [%- IF hour < 11 -%] morning [%- ELSIF hour < 18 -%] afternoon [%- ELSE -%] evening [%- END -%] ? #### # # .. from perl .. # $tt()->process( 'text.tt', { data => ( name => 'John', age => '18', grades => ( 98, 57, 79 ) ) } ) or die $tt->error(); # # .. in template file .. # Hello, [% data.name %], your third test grade was [% data.grades.2 %] Your grades so far have been: [% FOREACH grade = data.grades %] [% grade %] [% END %]