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

Re^4: scanning hash

by Aristotle (Chancellor)
on Aug 01, 2004 at 15:20 UTC ( #379090=note: print w/replies, xml ) Need Help??

in reply to Re^3: scanning hash
in thread scanning hash

Oh dear. Next thing we will argue about whether the equality of two values can be determined by the equality of their string representations. :-)

Makeshifts last the longest.

Replies are listed 'Best First'.
Re^5: scanning hash
by ysth (Canon) on Aug 02, 2004 at 19:50 UTC
    (puzzled) If you really want...I'll start us off.

    You can't determine the equality of two values from the equality of their string representations.

      To illustrate the point:

      $ perl -le '$a = $b = "foo"; print \$a eq \$b ? "true" : "false"' false

      The strings are identical, but they're two different strings. The string representations of references to them differ. Are they equal or not? This is a question of semantics that you can't answer without additional context.

      Indeed, if we just accept the string representation as the universal measure of equality, then ambrus is right: the empty string and undef are equal, and thus all of my arguing has been moot. However, experience tells me it is a prudent bet to assume that in most situations, undef needs to be treated differently from an empty string.

      Makeshifts last the longest.

        I was thinking of something simpler, such as:
        $x = 1.23456; $y = 1.234560000000001; print 0+($x == $y); # prints 0 for me print 0+($x eq $y); # prints 1 for me
        $x = 0; $y = "0";
        Are they equal? Yes and no.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://379090]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (6)
As of 2018-06-24 21:14 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.