Página 1 de 1

Cómo pasar valores de un programa a otro

NotaPublicado: 2009-09-01 13:36 @608
por oihantze
¡Hola!

Estoy haciendo unos programas en Perl. En el primer programa quiero recoger las palabras o frases (puede tener cualquier longitud) que me introduzca el usuario (ej. base de datos) y pasárselo al segundo programa.

La cosa es que yo se lo paso como $_[0] y lo recojo con $ARGV[0] pero así solo me coge la primera palabra de todas.

¿Cómo podría hacerlo para que me cogiese todas las palabras?

Re: Cómo pasar valores de un programa a otro

NotaPublicado: 2009-09-01 15:28 @686
por explorer
Puedes usar la opción de ejecutar el segundo programa, a través de system(), indicando cada argumento por separado:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
system('/usr/bin/perl','kk1.pl','base de datos');
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


o entrecomillar, según cómo lo indique el shell:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
system('/usr/bin/perl kk1.pl "base de datos"');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Re: Cómo pasar valores de un programa a otro

NotaPublicado: 2009-09-01 15:43 @697
por oihantze
Creo que me he explicado un poco mal.

El problema que tengo es que el valor del primer programa lo recojo del resultado de una interfaz gráfica (las he hecho con gtk2). Es decir, el usuario introduce una frase o un conjunto de palabras (base de datos) en la interfaz, yo la tengo que recoger en una variable y pasársela al otro programa y luego recibirla en el otro programa. El usuario me la mete sin comillas, por eso tengo el problema

Yo hasta ahora lo que he hecho es esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$pal=$entrada_palabra->get_text()[/b]; # aquí pretendo coger base de datos

exec "./alumno.pl $_[0]"]  # ejecuto el programa alumno.pl
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


y en el otro programa lo recibo así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$alumno = ARGV[0];
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


La cosa es que del modo que pongo yo solo consigo la palabra base cuando quiero coger base de datos.

Re: Cómo pasar valores de un programa a otro

NotaPublicado: 2009-09-01 15:55 @705
por explorer
Pues si no tiene comillas, se las pones:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $pal = 'base de datos';

exec("./alumno.pl \"$pal\"");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $alumno = $ARGV[0];

print "$alumno\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Re: Cómo pasar valores de un programa a otro

NotaPublicado: 2009-09-01 17:17 @761
por oihantze
¡¡¡¡GRACIAS!!!! ¡¡¡¡Me sirve!!!!