I can't speak to the usability of HTML::Template, never having worked with it, so I'll take your word for it. However I take strong exception to the idea that inheritance should be avoided. True it is kludgy, as is all of Perl's OO support, but it works predictably and reliably, and the decision to make use of it should depend upon architectural decisions and not discomfort with its implementation. Indeed the only problems I've ever encountered with inheritance have been in modules with constructors that have not been cleanly designed to support it, for example, have used the single argument form of bless. For more see inheritance: constructors.
"The dead do not recognize context" -- Kai,
Lexx