I agree with Dave, although I'm not sure that link points to Template Toolkit, looks like freestyle kite flying to me. Then again, I'm sure there is a relationship.
Here is a node about
Template vs. HTML::Mason with several links.
I can't think of a reason not to use Template Toolkit, except that it's a whole 'nother protocol to learn. It embeds Perlish stuff inside a skeleton HTML file. I'd be more inclined to want to keep it the other way around. If you have lots of short bits you're gluing together and these bits are relatively stable, you might just build a %bits hash-- with each element being a key name and the value being the bit of text you want to inject. Then you can either assign that value using a CGI method, like
print p( $bits{'this_key'} ); This keeps all the bits in a centrally maintainable place which is clear about what they do, and makes the code easier to streamline.
just my two cents, your mileage may vary.