Your main goal is to make the problem easily and conveniently reproducible by others.

To achieve that goal, the following steps have been widely recognized as being the ones leading up to a self-contained program that reproduces the error, and having such a program is generally regarded as the quickest way to produce a bugfix for the software authors.

  1. Reproduce the error by any means. Record all steps you do on paper.
  2. Document all input, all output, what the error is, and what should happen instead
  3. Document all assumptions like "Apache is installed", "network is available"

  4. Remove any unnecessary steps in your record, making sure that the error still occurs at the end.
  5. Reproduce the error automatically, by encoding all the steps you recorded on paper in a program.
  6. Remove as many of the assumptions as possible, by replacing Apache/mod_cgi by reading from a file for eaxmple. The goal is to create a (Perl) program that does not rely on any program or environment outside Perl, while still reproducing the error. If the error only happens with a specific outside program, chances are that the error is with that (version of the) outside program, and not with Perl.
  7. Reduce the Perl program as much as possible by removing unnecessary logic and setup. If the program relies on data, reduce the data as much as possibly by hardcoding values, for example.
  8. Write the error diagnosis as a test using Test::More.
  9. Make sure that the test currently fails.
  10. Send the resulting test program to the module author

In reply to Re^5: Problem with CGI::Vars by Corion
in thread Problem with CGI::Vars by Chipper

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.