Las funciones delete y exists

Utilice delete para suprimir los pares clave-valor de un hash:
%a = (lunes=>1, martes=>2, miercoles=>3, jueves=>4, viernes=>5, sabado=>6, domingo=>7 );
delete $a{lunes};
if (exists $a{lunes}) { ... } # FALSE

La Función exists

La función exists devuelve TRUE si el elemento especificado (de un hash o un array) ha sido inicializado, incluso si el valor correspondiente es undef.

Una diferenciación interesante, especialmente cuando se trata de hashes es entre existencia y definición:

%a = (lunes=>1, martes=>2, miercoles=>3, jueves=>4, viernes=>5, sabado=>6, domingo=>7 );
$a{lunes} = undef;
if (defined($a{lunes})) { ... } # FALSE
if (exists($a{lunes})) { ... }  # TRUE

Uso de delete sobre Trozos

También se puede pasar como argumento de delete un trozo del hash (para saber más sobre trozos de hashes vea la sección 1.14.4):

delete @a{martes, miercoles}; # dos dias laborales menos!



Subsecciones
Casiano Rodríguez León
2009-10-04