My experience is that once you get to the harder cases of uninitialized values, they are caused by variables where you stare at the it and think, "well that has to be there", and you later find out that it's not. The solution is to check each parameter at the entry to each function to see if it's defined, and kick off a warning or a die if it should be defined and isn't. It's tedious to write, and it interupts the flow when you're reading the code, but it saves lots of grief, IMO.

It's also useful to have those checks in there when something changes with the data and the routine blows up, 6 months down the road.


In reply to Re: Tracking down uninitialized values... by rodion
in thread Tracking down uninitialized values... by Slipstream

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.