• Publicidad

Pasar variables de un script a otro

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

Pasar variables de un script a otro

Notapor colorado » 2011-08-15 15:47 @699

Tengo los siguientes scripts:

test.pl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #use LWP::UserAgent;
  2. use Parallel::ForkManager;
  3.  
  4. my $forker      = Parallel::ForkManager->new(5);
  5.  
  6. foreach my $child ( 1 .. 5 ) {
  7.  
  8. $forker->start and next;
  9.  
  10. for (my $i = 0; $i  < 1; $i++) {
  11.  
  12. `perl down.pl`;
  13.  
  14. #print "child numero ",$child," con respuesta ",$response->code," ", $response->message,"\n";
  15.  
  16. }
  17.  
  18. $forker->finish;
  19.  
  20. }
  21.  
  22. $forker->wait_all_children;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4



down.pl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use LWP::UserAgent;
  2.  
  3. my $ua = new LWP::UserAgent(agent => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.5) Gecko/20060719 Firefox/1.5.0.5');
  4. my $response = $ua->get("http://pagina.com");
  5.  
  6. open(ARCHIVO,">>./respuestas.txt");
  7. #open(ARCHIVO,">>./$child.respuestas.txt");
  8. print ARCHIVO $response->code,' ', $response->message,"\n";
  9. close(ARCHIVO);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿Cómo podría ejecutar está línea?
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
linea 14 print "child numero ",$child," con respuesta ",$response->code," ", $response->message,"\n";
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¿Y esta?
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
linea 7 open(ARCHIVO,">>./$child.respuestas.txt");
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Es decir, pasar las variables de un script a otro.

He estado leyendo sobre require, crear un módulo, do()... pero cuanto más leo, más me estoy liando a la hora de aplicarlo.

¿Podéis echarme una mano?
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658

Publicidad

Re: Pasar variables de un script a otro

Notapor explorer » 2011-08-15 16:23 @724

(No probado)

test.pl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $respuesta = `perl down.pl $child`;
  2.  
  3. print "child número $child con respuesta $respuesta";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

down.pl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $child = $ARGV[0];
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. print $response->code, ' ', $response->message, "\n";
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: Pasar variables de un script a otro

Notapor colorado » 2011-08-15 18:13 @801

Genial, funciona perfecto :D
Muchísimas gracias, explorer.
colorado
Perlero nuevo
Perlero nuevo
 
Mensajes: 73
Registrado: 2010-01-31 14:48 @658

Re: Pasar variables de un script a otro

Notapor pvaldes » 2011-08-17 18:32 @813

No acaba de gustarme esta parte:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. for (my $i = 0; $i  < 1; $i++) {
  2.      `perl down.pl`;
  3.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Si $i queda definido como un integer en alguna parte, el loop queda: desde i = 0 hasta i = 0 y seguir avanzando hasta 0... o sea ¿un rango de amplitud cero?

También tienes problemas por olvidarte el strict, algo que ya ha apuntado explorer.

my $tut = `perl down.pl`;
pvaldes
Perlero nuevo
Perlero nuevo
 
Mensajes: 129
Registrado: 2011-01-22 12:56 @580

Re: Pasar variables de un script a otro

Notapor explorer » 2011-08-18 02:54 @162

pvaldes escribiste:Si $i queda definido como un integer en alguna parte, el loop queda: desde i = 0 hasta i = 0 y seguir avanzando hasta 0... o sea ¿un rango de amplitud cero?
La variable $i queda declarada y definida ahí mismo, no en ningún otro sitio. Mira aquí.

Y, sí, el bucle solo da una vuelta, pero quizás el autor estaba haciendo pruebas y puso el '1' en lugar del valor final.

pvaldes escribiste:También tienes problemas por olvidarte el strict, algo que ya ha apuntado explorer.
¿Dónde he hablado de strict?
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: Pasar variables de un script a otro

Notapor pvaldes » 2011-08-18 03:40 @194

Aquí implícitamente :mrgreen: al reescribir la línea como

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $respuesta = `perl down.pl $child`;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
pvaldes
Perlero nuevo
Perlero nuevo
 
Mensajes: 129
Registrado: 2011-01-22 12:56 @580

Re: Pasar variables de un script a otro

Notapor explorer » 2011-08-18 09:35 @441

Pues no... en esa línea no se comenta nada sobre strict.

Una cosa es el pragma strict, otra cosa es programar de forma estricta, y otra cosa es elegir si se quiere declarar (o no) las variables que vamos a usar.

Perl, a diferencia de otros lenguajes, permite las tres combinaciones :)
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: Pasar variables de un script a otro

Notapor pvaldes » 2011-08-18 12:22 @556

Bueno, pues digamos que estabas programando de forma estricta, entonces.
pvaldes
Perlero nuevo
Perlero nuevo
 
Mensajes: 129
Registrado: 2011-01-22 12:56 @580


Volver a Básico

¿Quién está conectado?

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