Perl Monk, Perl Meditation PerlMonks

### 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

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
or
```\$x = 0;
\$y = "0";
Are they equal? Yes and no.

Create A New User
Node Status?
node history
Node Type: note [id://379090]
help
Chatterbox?
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
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Should cpanminus be part of the standard Perl release?

Results (126 votes). Check out past polls.

Notices?