#!/usr/bin/perl
use strict;
use Foo;
use Template;
my $template = Template->new();
my @data = ( 1, 2, 3 );
$template->process( \*DATA, { object => Foo->new,
data => \@data })
|| die "Cannot process: ", $template->error();
__DATA__
[% FOREACH d = data %]
The datum is [% d %] and the computed
result is '[% object.compute( d ) %]'
[% END %]
####
package Foo;
# save as Foo.pm
sub new {
my ( $class, %params ) = @_;
return bless( \%params, $class );
}
sub compute {
my ( $self, $data ) = @_;
return "compute() called with: $data";
}
1;
####
$ perl test_tt_method.pl
The datum is 1 and the computed
result is 'compute() called with: 1'
The datum is 2 and the computed
result is 'compute() called with: 2'
The datum is 3 and the computed
result is 'compute() called with: 3'