use warnings; use strict; use Template; use Template::Directive; $Template::Directive::OUTPUT = 'print $main::OUT '; our $OUT; open $OUT, ">", "output.txt"; my $tmpl = Template->new(); my $text = "[%data%]"; $tmpl->process (\$text, {data=>'xxx'}); close $OUT;