%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 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
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!