#untested
open TFH, "main.html" or die "Can't open main.html cause $!";
my $template = Template->new() or die "new Template error $!";
$template->process(\*TFH) or die $tt->error(), "\n";
## or if you hate glob references maybe
use IO::File;
my $tfh = new IO::File;
open($tfh, "main.html") or die "Can't open main.html cause $!";
my $template = Template->new() or die "new Template error $!";
$template->process($tfh) or die $tt->error(), "\n";