>    %professors{ $a->name cmp $b->name };
   > 
   >    %students{ $$students{$b}{GPA} <=> $$students{$a}{GPA} };

These already mean something. Please don't "special-case" them.

Isn't this better handled with a (revamped and faster) tie?

        tie %professors, 'Tie::Sorted', ^a->name cmp ^b->name;

        tie %students, 'Tie::Sorted',
                       $$students{^1}{GPA} <=> $$students{^0}{GPA} };


Damian

Reply via email to