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:
#!/usr/bin/perl
use strict;
my $script;
my $template_variable = "templating";
while(<DATA>){
my $line = $_;
$line=~s/\n//g;
if ($line=~m/^(\s*)%(.*)/ig){
$script = $script."$2\n";
}else{
$script = $script."print \"$line\n\";\n";
}
}
#print $script;
eval $script;
__DATA__
<html>
normal HTML
%print "embedding perl \n";
$template_variable
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.