La Variable $!

Otro ejemplo de sensibilidad a este tipo de contexto lo da la variable escalar especial $!. En Perl existen variables ``mágicas'' o especiales que tienen este tipo de extraños nombres. Son mágicas porque, en la mayoría de los casos, se actualizan como consecuencia de algún efecto lateral. En un contexto numérico, la variable escalar $! retorna el valor numérico de la variable del sistema errno, la cual contiene el último error encontrado durante una llamada al sistema o a ciertas funciones de la biblioteca estándar C. En un contexto de cadena devuelve la cadena producida por la función perror():

lhp@nereida:~/etc$ perl -wde 0
main::(-e:1):   0
  DB<1> open $FILE, "fichero"
  DB<2> print "$!"
No existe el fichero o el directorio
  DB<3> print $!+0
2
  DB<4> print $!
No existe el fichero o el directorio
La función open intenta abrir para lectura el fichero con nombre fichero para dejar una descripción del mismo en la variable $FILE. En el supuesto de que tal fichero no exista, se producirán los correspondientes mensajes de error almacenados en $!.

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19