http://qs321.pair.com?node_id=160765

rinceWind has asked for the wisdom of the Perl Monks concerning the following question:

Hello brethren,

I'm writing some test for a new module, and I need a way of telling whether two arbitrarily complex data structures are identical in content.

One of the tests involves persisting a structure and reading it back - expecting the results to be identical. I tried Data::Dumper, and this almost worked - alas, the order of key/value pairs inside hashes is not preserved, hence the strings are not identical.

One thought would be to use Storable, but Storable with knobs on (or in this case hooks :-) is what I am in fact testing.

I either want an equality test that copes properly with hashes: {a=>'foo',b=>'bar'} equals {b=>'bar',a=>'foo'}, or a safe, guaranteed serialisation module that presents hash keys sorted.

I'm quite capable of writing a deep equality routine, but just a tad reluctant to re-invent the wheel.

Apologies if this information is already in the monks database, but Super Search aint what it used to be :-(.

--rW