• Publicidad

Cómo pasar variables desde programa externo

¿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 variables desde programa externo

Notapor Blas » 2007-11-08 11:44 @530

Hola, pues tengo una duda con el Perl.

He hecho un script para lanzar un programilla con Perl pero después cuando todo se ha ejecutado en este programa, me gustaría poder leer el valor de algunas variables que tiene. ¿Hay algún modo con Perl?

El programa lo lanzo con el comando: system()

Y espero a que éste ha terminado su ejecución dentro de un bucle.

Las pipe no creo que me sirvan... y no sé de nada más que pueda servirme; puede... que algún FILEHANDLE...

Gracias por vuestra ayuda.
Blas
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2007-11-08 11:34 @523

Publicidad

Notapor explorer » 2007-11-08 14:11 @633

Pero... ¿puedes modificar el programa lanzado desde el programa Perl?
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

Notapor Blas » 2007-11-09 06:02 @293

No realmente, lo que hago es lanzar el programa desde una carpeta donde incluyo todo lo que necesita el programa: archivos auxiliares, librerías, modelos, funciones, etc...

Perl no modifica nada del programa... en todo caso puedo modificar los archivos que el programa va a utilizar.

Así que con el comando system(prog_name) lanzo el programita desde dentro de la carpeta correspondiente.

También he probado con qx() pero no sé exactamente cómo funciona este comando.
Blas
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2007-11-08 11:34 @523

Notapor explorer » 2007-11-09 08:07 @380

Si el programa ejecutado no devuelve nada, no podrás obtener ningún valor.

¿El programa imprime algo por la salida estándar? ¿Por la salida de error estándar? ¿Deja algo en algún fichero? ¿Se conecta a algún sitio?

qx() ejecuta el programa, lo mismo que system(), pero en lugar de devolverte el valor de estado de la salida del programa, te devuelve la salida estándar del programa. Es decir, todo aquello que el programa lanzado haya impreso en su salida estándar.

Lo puedes ejecutar en contexto escalar y lista. Quizás sea esto lo que buscas.
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

Notapor Blas » 2007-11-09 09:08 @422

¡¡Ok, gracias!!
Sí que me sirve el comando qx(), porque puedo conseguir que el otro programa imprima los valores que necesito al final de todo el proceso.
Blas
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2007-11-08 11:34 @523


Volver a Intermedio

¿Quién está conectado?

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