Update: I just read frodo72's post, which makes the point better than this code.
In that case, if you are just going to use the first one, wouldn't finding the first one be faster than sort?
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;
}
-Bryan