I don't think so. HTML::Template uses CGI, so no.
HTML::Template uses the CGI protocol. However, it doesn't use the CGI module. (I've just grep-ed the source to be sure.)
What HTML::Template does is take a template (some text) and transform it (add some more text to it). It's then up to you what you do with that text.
Obviously often you want to emit the text as the content of a page responding to a CGI request, so you'll want a Content-Type: header. But it would be stupid for HTML::Template to assume this; there are many reasons why you need not to have the header. Here are some I've actually used:
- the script is running off-line to generate HTML for static webpages, which are stored in files and served in the usual way — no CGI protocol anywhere
- the CGI headers are actually part of the template itself; this allows template variables to set things like expiry times
- the content isn't actually HTML, but HTML::Template's templating ability is being used to generate some other content such as Latex documents
In short, if you need a Content-Type: header you have to provide it.
|