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