http://www.perlmonks.org?node_id=344057

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

Fellow wizards and witches,

I often find myself comparing hashes of file information or options and taking steps according on the differences. Normally I would loop though one of the hashes removing the equal items on both sides and then combining what's left. However after toiling with referenced array's in hashes for e.g. Template Toolkit I'm curious: Is there another (simpler) way of comparing hashes?

Example:

$given = { 'Subtype' => [ { 'url' => 'http://www.google.nl/', 'title' => 'testNL' }, { 'url' => 'http://www.google.be/', 'title' => 'testBE' } ], 'name' => 'test1' }; $retrieved = { 'Subtype' => [ { 'url' => 'http://www.google.nl/', 'title' => 'testNL' }, { 'url' => 'http://www.google.be/', 'title' => 'testBE' }, { 'url' => 'http://www.google.de/', 'title' => 'testBE' } ], 'name' => 'test2', 'type' => 'test2' };
The result should be:
$result = { 'Subtype' => [ { 'url' => 'http://www.google.de/', 'title' => 'testBE' } ], 'name' => 'test2', 'type' => 'test2' };

Thanks,

John

--- Lead me not into temptation for I can find it myself...