Try this
## Fort test1
## sort in descending order by value1, select first
@values1 = map { $_, $HoH{$_}{'Test1'}{'value1'} }
sort { $HoH{$b}{'Test1'}{'value1'} <=> $HoH{$a}{'Test1'}{'value1'}
+ } keys %HoH;
## sort in descending order by value2, select first
@values2 = map { $_, $HoH{$_}{'Test1'}{'value2'} }
sort { $HoH{$b}{'Test1'}{'value2'} <=> $HoH{$a}{'Test1'}{'value2'}
+ } keys %HoH;
print "Fort Test1\n";
print " ", $values1[0], " has value1=", $values1[1], "\n";
print " ", $values2[0], " has value2=", $values2[1], "\n";
## For test2
## sort in descending order by value1, select first
@values1 = map { $_, $HoH{$_}{'Test2'}{'value1'} }
sort { $HoH{$b}{'Test2'}{'value1'} <=> $HoH{$a}{'Test2'}{'value1'}
+ } keys %HoH;
## sort in descending order by value2, select first
@values2 = map { $_, $HoH{$_}{'Test2'}{'value2'} }
sort { $HoH{$b}{'Test2'}{'value2'} <=> $HoH{$a}{'Test2'}{'value2'}
+ } keys %HoH;
print "Fort Test2\n";
print " ", $values1[0], " has value1=", $values1[1], "\n";
print " ", $values2[0], " has value2=", $values2[1], "\n";
Enjoy!