in reply to Re^4: Problem with CGI::Vars
in thread Problem with CGI::Vars

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