/ / ¿Qué hace STDOUT-> autoflush (1) en Perl? - perl

¿Qué hace STDOUT-> autoflush (1) en Perl? - perl

He encontrado una variedad de información sobre el autoflushing en Perl, pero no puedo encontrar ninguna mención de una línea formateada exactamente como esta:

STDOUT->autoflush(1);

Esto está incluido en un programa que estoy analizando, y quiero entender mejor lo que hace. También hay esto al comienzo del programa:

use IO::Handle;

... que creo que podría estar relacionado, pero tampoco menciona este método en su documentación.

Respuestas

3 para la respuesta № 1

El método es listado en IO :: Mango que notaste

...
$io->autoflush ( [BOOL] )                         $|
...

por lo cual $| está configurado / desarmado, y te envía a $| en perlvar para explicación

Si se establece en un valor distinto de cero, fuerza un lavado de inmediato y después de cada escritura o impresión en el canal de salida seleccionado actualmente.

A partir de v5.14 no tienes que use IO::Handle para esto como IO :: Archivo es required cuando sea necesario.

Este método es especial, ya que activa el enjuague automático incluso sin el valor proporcionado,

$io->autoflush;  # turned on ($| gets set)

mientras que otros relacionados (ver documentos) no cambian el valor actual cuando se llama sin argumento.