viene verticales simbolo signos signo rayas precio origen dólar donde dolar argentina perl expression

perl - verticales - simbolo del dolar



Operador Perl: $ |++; tubo de signo de dólar plus plus (4)

Es un viejo idioma, desde los días previos a IO :: Handle. En el código moderno esto debería escribirse como

use IO::Handle; STDOUT->autoflush(1);

Estoy trabajando en una nueva versión de un código de perl ya publicado, y encontré la línea:

$|++;

AFAIK, $ | está relacionado con las tuberías, como se explica en este enlace , y entiendo esto, pero no puedo entender qué significa ++ (más más) aquí.

Gracias de antemano.

EDITAR: Encontré la respuesta en este enlace :

En resumen: obliga a imprimir (vaciar) a su consola antes de la siguiente declaración, en caso de que el script sea demasiado rápido.

A veces, si coloca una declaración de impresión dentro de un bucle que se ejecuta realmente muy rápidamente, no verá la salida de su declaración de impresión hasta que el programa finalice. a veces, ni siquiera ves la salida en absoluto. la solución a este problema es "vaciar" el búfer de salida después de cada declaración de impresión; Esto se puede realizar en perl con el siguiente comando:

$|++;

[actualización] como ha sido señalado por r. Schwartz, he hablado mal; el comando anterior hace que la impresión vacíe el búfer que precede a la siguiente salida.


Incrementa el autoflush, que probablemente sea equivalente a encenderlo.


$| el valor predeterminado es 0; haciendo $|++ tanto, lo incrementa a 1. Si se configura en un valor distinto de cero, se habilita el autoajuste en el identificador de archivo seleccionado actualmente, que es STDOUT de forma predeterminada y rara vez se cambia.

Por lo tanto, el efecto es asegurar que print declaraciones de print y similares salgan inmediatamente. Esto es útil si está enviando a un socket o similar.


$| es una abreviatura de $OUTPUT_AUTOFLUSH , tal como lo descubrió. El ++ incrementa esta variable.

$| = 1 $| = 1 sería la forma limpia de hacer esto (IMHO).