• Publicidad

Cómo pasar valores de un programa a otro

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Cómo pasar valores de un programa a otro

Notapor oihantze » 2009-09-01 13:36 @608

¡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?
oihantze
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2009-07-12 17:13 @759

Publicidad

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

Notapor explorer » 2009-09-01 15:28 @686

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
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: Cómo pasar valores de un programa a otro

Notapor oihantze » 2009-09-01 15:43 @697

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.
Última edición por explorer el 2009-09-01 15:50 @701, editado 1 vez en total
Razón: Ortografía
oihantze
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2009-07-12 17:13 @759

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

Notapor explorer » 2009-09-01 15:55 @705

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
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: Cómo pasar valores de un programa a otro

Notapor oihantze » 2009-09-01 17:17 @761

¡¡¡¡GRACIAS!!!! ¡¡¡¡Me sirve!!!!
oihantze
Perlero nuevo
Perlero nuevo
 
Mensajes: 25
Registrado: 2009-07-12 17:13 @759


Volver a Intermedio

¿Quién está conectado?

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

cron