Estoy buscando una buena manera de ordenar un hash en Perl primero por valor y luego por clave.Clasificar hash por valor y clave (en ese orden)
Ejemplo:
my %userids = (
williams => "Marketing",
smith => "Research",
johnson => "Research",
jones => "Marketing",
brown => "Marketing",
davis => "Research"
);
Salida:
Marketing: brown
Marketing: jones
Marketing: williams
Research: davis
Research: johnson
Research: smith
Tenga en cuenta que el valor fue el primer nivel de clasificación. El segundo nivel de clasificación es clave. ¿Alguna idea de cómo hacer esto de una manera elegante y de alto rendimiento? ¡Gracias!
diría que semánticamente que _sólo_ sentido al entrar en los elementos en la tabla hash . De lo contrario, obtendrás resultados inexplicables cuando el hash contenga tanto a Johnson como a Johnson. Es decir. al ordenar, difícilmente puede decir "las claves son equivalentes": según la definición tradicional, las tablas hash no pueden contener dos claves equivalentes – sehe
sí, las claves verdaderas siempre serán únicas en hash, nunca contienen dos claves equivalentes, pero puede ver la diferencia en salida. –
Puedo ver la diferencia en la salida. Es por eso que creo que sería una cosa extraña de hacer: viola el [principio de la menor sorpresa] (http://c2.com/cgi/wiki?PrincipleOfLeastAstonishment) en mi opinión – sehe