The statement
%key = sort keys %key;
takes the keys (not the associated values) of the hash, uselessly sort-s them (because hash key/value pairs have no inherent order beyond their key/value pairing) and assigns the (pseudo)randomly ordered keys only back to the hash. Please see the discussions of keys, values and each in the Perl documentation, and also associative arrays (hashes).
c:\@Work\Perl\monks>perl -wMstrict -le "my %alphas = ('a' .. 'x'); print qq{@{[ %alphas ]}}; ;; %alphas = sort keys %alphas; print qq{@{[ %alphas ]}}; " w x e f a b m n s t u v c d k l q r g h i j o p e g a c m o u w q s i k
Give a man a fish: <%-{-{-{-<
In reply to Re: Hash ordering
by AnomalousMonk
in thread Hash ordering
by solocazzimiei
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |