next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: El operador flecha grande Sup: Hashes Ant: Acceso a los elementos Err: Si hallas una errata ...

Asignación de Hashes

Es posible asignar un hash a otro:

%n = %a;
En un contexto de lista, el valor de un hash es la lista formada por sus pares clave-valor:

%a = ( 'x', 5, 'y', 3);
@b = %a;

Esta última asignación se llama desenrollar (unwinding) el hash.

Por supuesto, aunque los pares clave-valor aparecen seguidos, el orden en que figuran en el array es el orden en el que internamente Perl accede al hash:

 DB<1> %a = (one=>1, two=>2, three=>3)
 DB<2> @b = %a
 DB<3> p "@b\n"
 one 1 three 3 two 2

Lo mas común es transformar el hash inicial de alguna forma:

%r = reverse %h;

En el hash r las claves de h son los valores y viceversa. Si los valores de h no fueran únicos, en r ``triunfaría'' como clave algun valor de h, si bien cuál, depende de la implementación particular que la versión de Perl haga del hash.

Asignar un número impar de elementos a un hash da lugar a un mensaje de advertencia.


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: El operador flecha grande Sup: Hashes Ant: Acceso a los elementos Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21