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
|