{ name1 => {property1 => 8.8016, property2 => 4.5016, property3 => 4.0873, property4 => 7.0726, property5 => 9.5121,}, name2 => { ... }, name3 => { ... } }; #### my $word1 = "..."; my $word2 = "..."; my $data = { ... }; # Contains the data above my $sum = 0; foreach my $property (keys %{$$data {$word1}}) { $sum += $$data{$word1}{$property} if exists $$data{$word2}{$property}; }