On Wed, Oct 17, 2007 at 09:12:26PM +0900, Rick DeNatale wrote:
> 
> 1) Using hashs as keys in another hash is not a common use case. I'm a
> little hard-pressed to think of why I'd want to, although I'm famous
> for lack of imagination.
> 2) Because of the requirement that obj1.eql? obj2 => obj1.hash ==
> obj2.hash, implementing Hash#hash requires iterating over the keys and
> values and would be fairly expensive and make accessing a hash with
> hash keys by key impractical.

foo.eql? still seems a little inconsistent (and surprising) to me.
Essentially, it's == except when comparing hashes, at which point it
suddenly becomes foo.equal?.  Is there some instance in which foo.eql?
and foo.equal? evaluate differently for hashes that escapes me at the
moment?  Is there a particular use-case for foo.eql? (which for the
moment looks to me like the red-headed stepchild of Ruby equality) that
isn't satisfied by any of the other equality comparison methods?

While we're discussing things with equal signs -- why isn't = a method?

-- 
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
print substr("Just another Perl hacker", 0, -2);