Curso de Raku / Objetos, entrada/salida y excepciones / Entrada y salida

Flujos estándar

Todo programa tiene tres flujos estándar que lo conectan con su entorno: la salida estándar, el error estándar y la entrada estándar. Raku los pone a tu disposición mediante tres variables especiales: $*OUT, $*ERR y $*IN.

Llevas escribiendo en la salida estándar desde el principio: say y print mandan su texto a $*OUT.

say 'Hello'; # goes to standard output

Los mensajes de diagnóstico y de error se mantienen aparte, en el error estándar, para que no se mezclen con la salida real del programa. La rutina note escribe ahí:

note 'Something looks wrong'; # goes to standard error

Esta separación resulta útil porque los dos flujos se pueden redirigir por separado: puedes, por ejemplo, guardar la salida de un programa en un archivo y seguir viendo sus mensajes de error en la pantalla.

También puedes escribir directamente en los flujos. Tanto $*OUT como $*ERR son manejadores con sus propios métodos say y print:

$*OUT.say('a normal line');
$*ERR.say('a diagnostic line');

El tercer flujo, $*IN, es la entrada estándar. Lo conociste indirectamente a través de prompt, que lee una línea de él. Volveremos a la lectura de entrada cuando veamos los manejadores de archivo, porque $*IN es un manejador igual que un archivo abierto.

Práctica

Resuelve 1 cuestionario sobre el contenido de este tema.

Ejercicios

Esta sección contiene 3 ejercicios. Mira todos los temas de esta sección antes de empezar los ejercicios.

  1. Salida y error
  2. Un aviso con note
  3. Imprimir sin salto de línea

Entrada y salida   |   Salida y error