Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: comparing two values under 'perl -w'

by Rhose (Priest)
on Apr 02, 2002 at 16:38 UTC ( #156056=note: print w/replies, xml ) Need Help??


in reply to comparing two values under 'perl -w'

How about creating a sub to do this?

#!/usr/bin/perl -w use strict; sub SpecialEqual { my $pVal1 = shift; my $pVal2 = shift; return 1 unless (defined $pVal1 or defined $pVal2); return (defined $pVal1 and defined $pVal2 and $pVal1 == $pVal2); } print 'Testing: 1,1 = ',SpecialEqual(1,1),"\n"; print 'Testing: 1,2 = ',SpecialEqual(1,2),"\n"; print 'Testing: 2,1 = ',SpecialEqual(2,1),"\n"; print 'Testing: 2,2 = ',SpecialEqual(2,2),"\n"; print 'Testing: 2,2.5 = ',SpecialEqual(2,2.5),"\n"; print 'Testing: 2.5,2 = ',SpecialEqual(2.5,2),"\n"; print 'Testing: 2.5,2.5 = ',SpecialEqual(2.5,2.5),"\n"; print 'Testing: undef,1 = ',SpecialEqual(undef,1),"\n"; print 'Testing: 1,undef = ',SpecialEqual(1,undef),"\n"; print 'Testing: undef,undef = ',SpecialEqual(undef,undef),"\n";

Update:

Maybe I should have read RMGir's reply, yes? *Smiles*

Replies are listed 'Best First'.
Re: Re: comparing two values under 'perl -w'
by kappa (Chaplain) on Apr 02, 2002 at 16:57 UTC
    I like this best of all :)
    I works (good) and is readable (even more good). The one with ternary operator is shorter, thank you demerphq, but is a little too complicated to my taste. I like ?: myself, but not when they're nested. This code will probably be read by different people including perl novices.
      Er, I take minor issue with the term "nested". I too tend to avoid nested ternary ops but I generally think of the above example as "chained" and not nested.

      my $x=$y ? $z ? $t : $u : $v; #nested my $x=!$y ? $v : $z ? $t : $u; #chained
      Oh and I dont really understand why people are so superstitious about ternary ops. Many non developers are even familiar with them as they come up often in excel cell formula if(Condtion,yesresult,noresult). OTOH if you have maintainence issues to consider then whatever minimizes headaches...

      :-)

      Yves / DeMerphq
      ---
      Writing a good benchmark isnt as easy as it might look.

        Oh, that's interesting.
        I like the pattern of 'chained ternary ops'! Thank you! Hm, gotta get used to it :)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://156056]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (4)
As of 2023-03-24 16:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Which type of climate do you prefer to live in?






    Results (61 votes). Check out past polls.

    Notices?