Maybe the best approach would be to make templating systems less restrictive. whether using a single perl script, splitting script and perl (HTML::Template) or embedding perl (HTML::Mason) there are clear disadvantages. An alternative is to join all three methods together. Have a file that is a perl script but contains the ability to include templating and embedding. For example:
my $template_variable = "templating";
my $line = $_;
$script = $script."$2\n";
$script = $script."print \"$line\n\";\n";
%print "embedding perl \n";
As little or as much templating or embedding could be done depending on the requirements of the project, without changing framework and using perl as much as possible.