in reply to How to test equality of hashes?
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)
|
---|