[perl] escritura de archivos dentro de ciclos while infinitos

Gunnar Wolf gwolf@campus.iztacala.unam.mx
Fri, 26 Jan 2001 09:35:14 -0600 (CST)


> Hola a todos:
> Estoy realizando un programa en perl que debe escribir a archivos dentro de
> un bucle infinito (while 1 ).
> Debajo encontran una version reducida de la idea de dicho programa.
> al ejecutarlo me genera ambos archivos pero no escribe nada en ellos.
>
> Desde ya, gracias a todos.
>
> #!/usr/local/bin/perl
>
> open mal,"> estadoth.dat";
> open log1,">> cambioth.log";
> while (1){
> sleep (10);
> print mal "prueba \n";
> print log1 "prueba1\n";
> }

Te sugiero activar el autoflush para ambos filehandles. Tu código quedaría
así:

open mal,"> estadoth.dat";
open log1,">> cambioth.log";
$stdin = select(mal);
$| = 1;
select(log1);
$|=1;
select($stdin);
while (1){
    sleep (10);
    print mal "prueba \n";
    print log1 "prueba1\n";
}

Para más información, busca la variable $| en perldoc perlvar.

Salu,

-------------------------------------------------------------------
           Gunnar Wolf    gwolf@campus.iztacala.unam.mx
     Universidad Nacional Autónoma de México, Campus Iztacala
   Jefatura de Sección de Desarrollo y Admon. de Sistemas en Red
       Departamento de Seguridad en Computo - DGSCA - UNAM
-------------------------------------------------------------------

--------- Pie de mensaje --------------------------------
Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text   : unsubscribe perl