use List::Util; #... later in the code sub IsStrongMatch { # Return true if id2 is only top ranked match for id1 my $id1 = shift; my $id2 = shift; my $rC = shift; for my $i1 ( keys %{$rC} ) { next if $i1 == $id1; my $href = $rc->{$i1}; my $minid = reduce { $href->{$a} < $href->{$b} ? $a : $b } keys %$href; return 0 if defined $minid && $id2 == $minid; } return 1; }