sub Print_Tests($$) { my $sort = shift || "a"; my $order = shift || "d"; my (@ordered_keys); # Create the sorter if (($sort eq 't') && ($order eq "a")) { @ordered_keys = sort { $tests{$a}{"Total"} <=> $tests{$b}{"Total"} } keys %tests; } elsif (($sort eq 't') && ($order eq "d")) { @ordered_keys = sort { $tests{$b}{"Total"} <=> $tests{$a}{"Total"} } keys %tests; } elsif (($sort eq 'v') && ($order eq "d")) { @ordered_keys = sort { $tests{$b}{"Value"} <=> $tests{$a}{"Value"} } keys %tests; } elsif (($sort eq 'v') && ($order eq "a")) { @ordered_keys = sort { $tests{$a}{"Value"} <=> $tests{$b}{"Value"} } keys %tests; } elsif (($sort eq 'a') && ($order eq "a")) { @ordered_keys = sort keys %tests; } else { @ordered_keys = sort reverse keys %tests; } foreach my $key (@ordered_keys) { my $val = $tests{$key}; print "$key\n"; print " Total: $val->{Total}\n"; print " Value: $val->{Value}\n\n"; } }