in reply to Changing the keys of hashes in arrays

Hmmm... don't know if this is the best solution (nor if it's really what you meant to do), but this might be what you need:
use strict; my (@newarray,@array1,@array2); #Fill @array1 and @array2 with hashrefs here... my $count = 0; foreach my $element1 (@array1) { foreach my $element2 (@array2) { foreach my $key (keys %{$element1}) { next if (%{$element1}->{$key} == %{$element2}->{$key}); %{$newarray[$count]} = %{$element1}; my $val = $newarray[$count]->{$key}; delete $newarray[$count]->{$key}; %{$newarray[$count]}->{'CHANGED'} = $val; } } }