good chemistry is complicated, and a little bit messy -LW |
|
PerlMonks |
Same number, different string [Re: my least favorite perl feature]by bronto (Priest) |
on Feb 06, 2003 at 15:47 UTC ( [id://233160]=note: print w/replies, xml ) | Need Help?? |
Actually, your problem doesn't have a simple solution. Two equal strings surely have the same numerical values, but what about two different strings? According to perlnumber these different strings all have the same numerical value: 1, 0x1, 01, 0b00000001 So, when $a eq $b says they are different, what would you do? I'll compare with == then! It's a simple or!. Gotcha! I am sorry, it's wrong: try to see what happens with ($a,$b) = qw(x y)... What then? Well, when they are stringwise different, you have to choose again if you want to make a numerical comparison or not. You could check (by means of a regexp, for example) if $a and $b look like a number. If they don't, they are different and that's the end of the game; if they both are numbers you can (finally) proceed with == I had liked to find a better solution, but I think there isn't any. Ciao! The very nature of Perl to be like natural language--inconsistant and full of dwim and special cases--makes it impossible to know it all without simply memorizing the documentation (which is not complete or totally correct anyway).
In Section
Seekers of Perl Wisdom
|
|