I think that may all be more trouble than it is worth. One of the big reasons that the warnings pragma came to be was so that warnings didn't have to be an all or nothing proposition.

#!/usr/bin/perl use strict; use warnings; my ($foo, $bar); print '1: ', $foo eq $bar, "\n"; # Uninitialized warning. { no warnings qw( uninitialized ); print '2: ', $foo eq $bar, "\n"; # No warnings emitted. } print '3: ', $foo eq $bar, "\n"; # Warns again.

Update: If you insist on taking the long way though, here's something that might^probably won't help.

Update: Following is the original text of my message. My code is incorrect. It contains a bug whereby it both emits a warning and gives an incorrect result if $x is set to 0 and $y is left undefined. It will not give this result if $x is undefined and $y is 0, however. Ouch. Ewwww. Ugly! Please accept my humble apologies for not thorougly testing.

I believe that:

((defined($x) && defined($y) && ($x eq $y)) || (!defined($x) && !defined($y))
is equivalent to the shorter and more readable:
( defined($x && $y) and ($x eq $y) ) or not defined($x || $y)
And if you were really playing golf you might write that as:
defined($x&&$y)&&$x eq$y||!defined($x||$y)

Edit and Update: Added readmore tags and show a nasty bug with my definedness shortcuts.

-sauoq
"My two cents aren't worth a dime.";

In reply to Re: (Golf) Warningless Comparison by sauoq
in thread (Golf) Warningless Comparison by tadman

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.