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 $i2; for ( keys %{ $rC->{ $i1 } } ) { $i2 = $_ if not defined( $i2 ); # if there's a good way to find a starting $i2 # before beginning, then take this out, and # don't check every time $i2 = $_ if $rC->{ $i1 }->{ $_ } < $rC->{ $i1 }->{ $i2 }; } if ( $id2 == $i2 ) { return 0; } } return 1; }