my $name1 = 'name1'; # or whatever my $name2 = 'name2'; # or whatever my $sum = 0; # turn Hash of Arrays into Hash of Hashes my %HOH; while (my($name,$aref) = each %{$VAR1} ) { for my $item (@$aref) { my($prop,$score) = split(',',$item); $HOH{$name}{$prop} = $score || 0; } } my $first = $HOH{$name1}; my $second = $HOH{$name2}; while (my($prop,$score) = each %{$first} ) { $sum += $score if exists $second->{$prop}; } print "Sum of $name1 in $name2 is: $sum\n"; # Prints: Sum of name1 in name2 is: 8.5889