Curso de Raku / Avanzado / Contenedores / Variables especiales y dinámicas
Variables especiales integradas
Raku predefine un conjunto de variables para ti. La mayoría de ellas
son dinámicas (el twigil *), así que — como viste
con las variables
dinámicas — puedes leerlas en cualquier lugar e incluso anularlas
para un ámbito. Estas son las que usarás con más frecuencia.
Flujos estándar
La entrada y salida fluyen a través de tres variables dinámicas:
$*OUT (salida estándar), $*ERR (error
estándar) y $*IN (entrada estándar). say y
print escriben en $*OUT; para enviar texto al
error estándar, llama al método sobre $*ERR:
$*OUT.say('normal output'); # goes to standard output
$*ERR.say('a diagnostic'); # goes to standard errorComo son dinámicas, redirigir $*OUT en un bloque envía
la salida de todo lo que se llame dentro de ese bloque al nuevo destino
— sin cambiar nada de ese código.
El programa y su proceso
Algunas variables describen el programa en ejecución:
say $*PROGRAM-NAME; # the path of the script being run
say $*PID; # the process id of this program
say $*CWD; # the current working directorySus valores cambian de una ejecución a otra, por lo que aquí no se muestra una salida fija.
Línea de comandos y entorno
Los argumentos y el entorno llegan en dos contenedores predefinidos:
@*ARGS— la lista de argumentos de línea de comandos (los mismos que recibe una subrutinaMAIN)%*ENV— las variables de entorno, como un hash
say @*ARGS.elems; # how many arguments were passed
say %*ENV<HOME>; # the value of the HOME environment variableEstas variables integradas te ahorran tener que configurar la misma
información manualmente. Y como son dinámicas, buscadas a través de la
pila de llamadas, cualquier variable integrada $* puede
anularse para un ámbito exactamente como una variable $*
propia.
Junto a estas variables dinámicas, Raku también tiene las variables
integradas de tiempo de compilación ? — $?FILE
y $?LINE — que ya conociste en la página de twigils.
Práctica
Resuelve 1 cuestionario sobre el contenido de este tema.
Navegación del curso
← Quiz — Variables dinámicas | Quiz — Variables especiales →
💪 O ve directamente a los ejercicios de esta
sección.