• Publicidad

Realizar cierta cosa por cierto tiempo

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Realizar cierta cosa por cierto tiempo

Notapor BigBear » 2013-12-05 13:16 @594

Hola. Quiero hacer una cosa cualquiera ya sea un
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. print "hola mundo";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
o algo así por 10 segundos o cualquier tiempo en general. Pensé en usar threads pero quería preguntar si alguien me podría dar un ejemplo de otra cosa que no sea threads.

¿ Alguien me puede ayudar ?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Realizar cierta cosa por cierto tiempo

Notapor explorer » 2013-12-05 13:32 @605

Con sleep() puedes hacer que el programa continúe pasado un tiempo.

Más información en perldoc -f sleep.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Realizar cierta cosa por cierto tiempo

Notapor BigBear » 2013-12-05 13:40 @611

No, lo que realmente quiero hacer es algo así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. while(1) { # Y que esto dure 10 segundos o cualquier tiempo repitiéndose hasta que el tiempo termine
  2. print "hola mundo";
  3. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Realizar cierta cosa por cierto tiempo

Notapor explorer » 2013-12-05 14:02 @626

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $ahora = time;
  2. my $lapso = 3;
  3.  
  4. while (time - $ahora < $lapso) {
  5.     say "¡Hola, mundo!";
  6. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Realizar cierta cosa por cierto tiempo

Notapor BigBear » 2013-12-05 14:23 @641

Gracias por la ayuda, explorer. Mira, tengo esta porción de código que no me funciona.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. for my $se ( reverse 0 .. 10 ) {
  2.     sleep 1;
  3.     syswrite STDOUT, "[+] Wait $se seconds \r";
  4.  
  5. }
  6.      
  7. while (time - $tiemponow < $hasta) {
  8.  
  9. print "dure\n";
  10.  
  11. sleep($tiempo_final);
  12. SendKeys($your_text);
  13. SendKeys("{ENTER}");
  14.  
  15. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


El problema es esta porción.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. for my $se ( reverse 0 .. 10 ) {
  2.     sleep 1;
  3.     syswrite STDOUT, "[+] Wait $se seconds \r";
  4.  
  5. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Porque hace que la parte que viene no funciona ni mande ninguna tecla a sendkeys(); te lo digo porque probé sacando esa porción de código y el código anda bien. Solo es esa primera parte.

¿ Alguien me puede ayudar ?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Realizar cierta cosa por cierto tiempo

Notapor explorer » 2013-12-06 14:34 @648

Si la segunda parte no se ejecuta es porque la condición del while() falla. Es decir: (time - $tiemponow < $hasta) es falso.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Realizar cierta cosa por cierto tiempo

Notapor BigBear » 2013-12-06 16:39 @735

Sí, pero lo raro es que cuando saco esta porción del código, la sentencia while() se ejecuta bien, al contrario de cuando estaba la primera porción del código.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. for my $se ( reverse 0 .. 10 ) {
  2.     sleep 1;
  3.     syswrite STDOUT, "[+] Wait $se seconds \r";
  4.  
  5. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Realizar cierta cosa por cierto tiempo

Notapor explorer » 2013-12-06 16:52 @744

Claro... porque estamos manejando tiempo.

¿Qué diferencia hay entre tener un while solo o un foreach + while?

Pues que el segundo se ejecuta once segundos más tarde.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados