> How about
>
> %students : ( sort = $$students{^1}{GPA} <=> $$students{^0}{GPA} });
Weeeeeeird! :-)
Since you've strayed so close, why not go all the way and make it an attribute:
my %students : sorted( $ME{^1}{GPA} <=> $ME{^0}{GPA} );
Where the C<sorted> attribute takes a block/sub ref/h.o.f. that expects
to compare two keys, which would be passed as arguments. Note too the
(now generalized) use of the proposed $ME variable.
Voila! A syntax entirely consistent with other existing and proposed
Perl usages.
Damian