Not really. Those warnings annoy me.

The ability to treat an uninitialized variable as zero or the empty string is handy and is part of what makes perl Perl. Explicitly having to check whether a variable is undef at runtime makes code unnecessarily verbose and (very slightly) slower. I can understand wanting to have this warning available to help people with debugging, but 99% of the time, it's annoying.

I don't think the once or void warnings categories have ever helped me find a real error in my code. once becomes annoying if you want to do things like:

printf "%s%s\n", $MyModule::Config::Indent ? "\t" : "", $output;

Where $MyModule::Config::Indent is a variable that end users can set to true if they want indented output. That might be the only place in my module where I perform any output, so that variable would only be referenced once. I don't want a warning for that. (And yes, I know globals are bad in general, but there are some places where their use can be expedient.)

The numeric warnings category can be annoying at times too, but it's just helpful enough for me to want to keep it enabled most of the time.


In reply to Re^3: Preventing Use of uninitialized value. by tobyink
in thread Preventing Use of uninitialized value. 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.