in reply to Re: Seeing if two numbers have the same sign
in thread Seeing if two numbers have the same sign

What is the goal here?

Using <=> is clever, I think. And by that I mean that it invokes a less common set of symbols to come to a result in a surprising and elegant way.

I'm not sure that is good, though. Assuming that if either variable is zero you should return 0, my first thought was

if ($left > 0) { if ($right > 0) { # both pos return 1 } } elsif ($left < 0) { if ($right < 0) { # both neg return 1 } } return 0;
That is, anchor one, see if the other is the same, and if so return 1; otherwise, fall through and return 0.

I think this is bad because its a whole bunch of lines. On the other hand, I think its good because its dead obvious, and probably pretty fast (fewer compares and jumps than even the double '<=>' version).

ymmv. "What is good?", asked jesting Pilate, not waiting for an answer.

--woody

Replies are listed 'Best First'.
Re^3: Seeing if two numbers have the same sign
by f00li5h (Chaplain) on Jan 10, 2008 at 16:14 UTC

    Using the shuttles I'm basiclaly asking "Do these 2 numbers compare to zero the same way"

    Personally i'm a fan of the $left * $right > 0 solution, it has a nice mathy feel. although may have issues for massive numbers etc (Corion++ on that count)

    @_=qw; ask f00li5h to appear and remain for a moment of pretend better than a lifetime;;s;;@_[map hex,split'',B204316D8C2A4516DE];;y/05/os/&print;