I'd never considered this as a problem, as I accomplish the same thing with a construct like:
my $master = HTML::Template->new(filename=>'master.tmpl');
### BLAH, BLAH ###
my $sub_tmpl = HTML::Template->new(filename=>$foo);
$sub_tmpl->param('variable'=>'value');
$master->param('include_foo' => $sub_tmpl->output);
__END__
The template like:
<tmpl_var name='include_foo' default=''>
So far I haven't encountered a case where this approach isn't just peachy, but of course YMMV.
Yoda would agree with Perl design: there is no try{}