Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: How to test equality of hashes?

by bikeNomad (Priest)
on Jun 20, 2001 at 06:46 UTC ( [id://89899]=note: print w/replies, xml ) Need Help??


in reply to How to test equality of hashes?

Unfortunately, when you evaluate a hash in a scalar context it returns a fraction representing the hash table bucket usage, which is rarely what anyone is interested in. It doesn't even return the number of elements.

If you want to compare the contents of two hashes, you'll have to look at the keys and values of both. One way to compare them:

my @k1 = keys(%hash1); my @k2 = keys(%hash2); # do they have the same number of elements? if (@k1 != @k2) { # they're different... } # are the keys the same? if (join($; , sort(@k1)) ne join($; , sort(@k2))) { #they're different } # are the values the same? if (join($; , @hash1{@k1}) ne join($; , @hash2{@k1})) { #they're different }

All of this assumes that neither your keys nor values contain the $; character (by default \034)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://89899]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (None)
    As of 2024-04-25 01:13 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      No recent polls found