next up previous index
suivant: Les expressions régulières monter: Les entrées-sorties précédent: La fermeture   Index


Le buffering

Les opérations d'entrée-sortie sont bufferisées par défaut. Il est possible de forcer perl à faire un flush après chaque opération de lecture ou d'écriture en fixant la variable spéciale $| à une valeur non nulle, après avoir sélectionné le descripteur courant comme descripteur par défaut grâce à la commande select.

On utilise communément cette syntaxe :

$oldfh = select(FILE);
$| = 1;
select($oldfh);
Note: la fonction select existe également sous la même forme qu'en C, pour effectuer l'appel-système select, ce qui peut induire une certaine confusion. Pour plus d'informations sur l'appel-système select, reportez-vous à la page de manuel de votre système :

$rin = $win = $ein = '';
vec($rin, fileno(STDIN), 1) = 1;
vec($win, fileno(STDOUT), 1) = 1;
$ein = $rin | $win;

($nfound, $timeleft) = select($rout = $rin,
                              $wout = $win,
                              $eout = $ein,
                              $timeout);
Si on désire plus de lisibilité pour fixer le buffering, on peut utiliser le module FileHandle :

use FileHandle;

autoflush FILE 1;


next up previous index
suivant: Les expressions régulières monter: Les entrées-sorties précédent: La fermeture   Index
Olivier Aubert
1999-06-01