I can't believe noone mentioned CGI.pm itself. Yes, of course, a templating system also. But hey, at least even without even knowing of CPAN, and as a whee Perl toddler, I understood that separation of concerns was a good thing. :)