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


in reply to Using FreezeThaw correctly?

I also found another way to do this without using FreezeThaw. Test::More also includes a function is_deeply that works about the same way:

is_deeply( \%crosslinks, \%crosslinkscorrect, "hash_comparison" );

This also much better for using in test scripts, since it returns more information when the test fails:

t/ReadCrossLinks....NOK 1# Failed test (t/ReadCrossLinks.t at line + 32) # Structures begin differing at: # $got->{10.5.5.1}[0] = undef # $expected->{10.5.5.1}[0] = Does not exist # Looks like you failed 1 tests of 1.

Not to mention the fact that since my app doesn't use FreezeThaw for anything else, I can remove that dependency from Makefile.PL. :-)

NOTE: The structures I will be comparing contain only scalars and anonymous refs. I have not tried is_deeply with refs as shown in perlfaq4, so I don't know if it acts more like cmpStr or cmpStrHard, but it works wonderfully for my purpose.

--J