next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Lectura de Datos Sup: Escalares Ant: Contexos Numérico y de Err: Si hallas una errata ...

Variables Mágicas

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():
open FILE, "fichero"; 
print "$!\n" if $!; # "No such file or directory"
print 0+$!,"\n";    # "2" u otro número
La función open intenta abrir 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 $!. Observe el uso del condicional if $!. Si la cadena $! existe y está definida, la condición lógica será evaluada como cierta. En caso contrario, el print no se ejecutará. Para mas información sobre el uso de las expresiones lógicas en Perl lea la sección 1.2.

Probablemente la mas importante de estas variables mágicas es $_. La variable especial $_ es el argumento por defecto para un gran número de funciones, operadores y estructuras de control. Asi, por ejemplo:

print;
es lo mismo que
print $_;


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Lectura de Datos Sup: Escalares Ant: Contexos Numérico y de Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21