Otra de las novedades de Perl frente a otros lenguajes "clásicos" es el soporte de "tablas hash", una estructura de datos parecida a los "arrays", pero en la que para acceder a cada elemento no usaremos un número, sino una palabra asociada.
Las variables de tipo "hash" se declaran precediendo su nombre por un símbolo de porcentaje (%). Una primera forma de definirlas, bastante compacta, es ésta:
%edad = ('Juan', 23, 'Pedro', 31);
Para ver la edad de Pedro haríamos
print "La edad de Juan es " . $edad{'Juan'} . "\n";
(cuidado: para acceder a cada dato individual sí se emplea $, y la referencia que buscamos se encierra entre llaves).
Existe otra forma de declarar este tipo de variables, que ocupa más espacio pero puede resultar más legible:
%estatura = (
Juan => 182,
Pedro => 178
);
Así se ve más claramente que son dos pares de datos.
En este caso, también se accedería a cada dato de la misma forma
print "La estatura de Pedro es " . $estatura{'Pedro'} . "\n";
Se puede modificar el valor de una variable de tipo hash así:
$estatura{'Juan'} = 183;
Si usamos este mismo formato con una referencia que no existe, se añadirá a la tabla hash:
$estatura{'Alberto'} = 169;
Podemos borrar un dato con delete:
delete $estatura{'Juan'};
O eliminar todo el hash con "undef":
undef %estatura;
Finalmente, podemos juntar todo esto en un pequeño programa de prueba:
%edad = ('Juan', 23, 'Pedro', 31);
print "La edad de Juan es " . $edad{'Juan'} . "\n";
%estatura = (
Juan => 182,
Pedro => 178
);
print "La estatura de Pedro es " . $estatura{'Pedro'} . "\n";
$estatura{'Juan'} = 183;
print "La estatura de Juan es " . $estatura{'Juan'} . "\n";
$estatura{'Alberto'} = 169;
delete $estatura{'Juan'};
print "La estatura de Juan es " . $estatura{'Juan'} . "\n";
undef %estatura;
print "La estatura de Juan es " . $estatura{'Juan'} . "\n";
En este ejemplo, los dos últimos "print" muestran "La estatura de Juan es" y nada más, porque no hay definido ningún valor que mostrar.
29 septiembre 2007
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario