or download this
use FreezeThaw qw(cmpStr cmpStrHard);
%a = %b = ( "this" => "that", "extra" => [ "more", "stuff" ] );
...
The first reports that both those the hashes contain the
same data, while the second reports that they do not.
Which you prefer is left as an exercise to the reader.