my %uniq; for (keys %hash){ if (exists $uniq{scalar reverse $_}){ $uniq{scalar reverse $_} += $hash{$_}; } else { $uniq{$_} = $hash{$_}; } } # untested