use strict; use Data::Dumper; use Algorithm::Diff qw[ diff ]; my $given = { 'Subtype' => [ { 'url' => 'http://www.google.nl/', 'title' => 'testNL' }, { 'url' => 'http://www.google.be/', 'title' => 'testBE' } ], 'name' => 'test1' }; my $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' }; print @$_ for map{ @$_ } diff( [ split "\n", Dumper( $retrieved ) ], [ split "\n", Dumper( $given ) ] );