in reply to HTML::Template Problem

In addition to the tag problem, it doesn't appear that you're emitting a Content-Type: header.

Replies are listed 'Best First'.
(shockme) Re: HTML::Template Problem
by shockme (Chaplain) on Mar 27, 2002 at 04:07 UTC
    Okay, I was wondering about this. According to the HTML::Template Tutorial, I don't have to (unless I've really mis-read the whole thing).

    When using HTML::Template, do I still have to issue the Content-Type header?

    If things get any worse, I'll have to ask you to stop helping me.

      When using HTML::Template, do I still have to issue the Content-Type header?

      I consider the HTML::Template POD to be authoritative (well, the code is, too). As of version 1.8, you need to supply the header.

      I don't think so. HTML::Template uses CGI, so no.
        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.