The most important thing you can do is to run this script from the command-line and make sure that it's not a syntax error, before worrying about what actually gets spit out of it.

Secondly, the most common mistake to cause that error is that the output of your script needs to begin with the text:

Content-type: text/html
followed by a newline and a blank line.

That being said, there are several ways to go about figuring out any remaining problems. First, you could print out debugging messages to the screen and read them that way. Secondly, you could print all debugging messages to STDERR, which is directed to apache's error_log.

If you want to get more into it, you could do something like set the environment variable QUERY_STRING in your shell to the list of your form parameters being passed, and then execute the script from the command line.

I'm probably going too far here, but I think it's important to understand that a CGI is nothing special.. it is just a program run by a certain user, with its output directed to the viewer's browser.


In reply to Re: Debugging perl cgi in apache by plaid
in thread Debugging perl cgi in apache by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.