[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Una dudilla de perl



Y el sábado 19 de enero, Hue-Bond escribió:
> $ cat test.pl 
> #!/usr/bin/perl
> sleep (4);
> $a=<STDIN>;
> 
> $ ./test.pl &
> [16] 8500
> $               # pulso enter
> $ 
> $ 
> $ 
> $ 
> $ 
> 
> [16]+  Stopped                 ./test.pl
> $ _
> 
>          El shell detiene al script perl porque el uso de <> necesita un
>      "algo" que no sé bien lo que  es. Lo que quiero es saber cómo puedo
>      leer una  línea de  un descriptor  de archivo sin  que el  shell me
>      suspenda mi script. Adicionalmente me gustaría que la función fuera

Si lo que quieres es leer un archivo abrelo y léelo de esta manera:

open FILE, $filename or die "No puedor. Jooorl. $!";
while (<FILE>){
    # La linea leida se encuentra en la variable automática $_
    print "He leido: $_";
}
close FILE;

De esta manera también podrás leer de la entrada estandar con 
a$ = <STDIN>;

como estabas haciendo.

>      bloqueante, o  sea que la  ejecución del  programa al llegar  a ese
>      punto se detuviera  esperando al usuario. read() y  sysread() no me
>      valen porque no leen  una línea y además si no  hay datos que leer,
>      la ejecución del script continúa como si nada. ¿Cómo hago?
> 

De todas maneras si lo que quieres es hacer un programa interactivo te
recomendaría que usaras otras posibilidades (Perl/Tk es lo que yo uso,
pero también te valdrían Perl/Gtk o con *curses*.

Espero haberte ayudado.
Saludos

-- 
Luis Arocha "Data" <data@gamebox.net>             o
Canary Islands, Spain              /|              \O__@
         ____ O _________________ //|_____________  | _______
   O    /     |\-@               ///               //        / O
  /\   /      \\                |//                \\       /  /\
__>_oo/_______//________________|/_________________________/___o<___
Linux yoda 2.4.17 i686
Oir a todos, creer a pocos.

Attachment: pgphFws8JEVNV.pgp
Description: PGP signature


Reply to: