• Publicidad

Interpretar código de salida en otro script Perl

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

Interpretar código de salida en otro script Perl

Notapor joralastair » 2012-12-18 18:30 @812

Hola, soy nuevo usando Perl. Tengo una duda y estoy seguro que es algo muy simple y un poco de ayuda no me hace mal. ¿Cómo puedo hacer que el código de salida de un script Perl (exit = 1) lo interprete otro script Perl para ejecutar una acción determinada.

Gracias de ante mano.

Jorge
joralastair
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2012-12-18 17:48 @783

Publicidad

Re: Interpretar código de salida en otro script Perl

Notapor explorer » 2012-12-18 19:36 @858

Bienvenido a los foros de Perl en Español, joralastair.

Supongamos que el primer programa es este:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. exit(42);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Entonces, podemos ejecutarlo desde otro programa y obtener su resultado:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use v5.14;
  3. my $res = system('/usr/bin/perl', '1.pl');
  4. say "Valor devuelto: ", ($res >> 8); # 42
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
El desplazamiento de 8 bits es necesario porque el resultado viene empaquetado en dos bytes (más información en perldoc -f system).

Otra forma de hacerlo: Cargando el primer programa dentro del primero y ejecutarlo como un script Perl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. # Un programa Perl que solo hace una cosa: devolver 42 como última instrucción ejecutada
  3. 42;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use v5.14;
  3. my $res = do '1.pl';
  4. say "Valor devuelto: $res";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Más información en perldoc -f do (o perldoc perlfunc y buscar la sección de 'do').

Y una tercera: Ejecutar el primero y capturar su salida estándar:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. print "42";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use v5.14;
  3. my $res = qx(/usr/bin/perl 1.pl);
  4. say "Valor devuelto: $res";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Más información en tu propio ordenador en perldoc perlop, y en la Web (traducido al español), sección Comillas y Operadores de comillas.
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: Interpretar código de salida en otro script Perl

Notapor joralastair » 2012-12-19 11:06 @504

:D :D , Muchas gracias, solución sencilla y muy práctica. Gracias, explorer y a todo el foro.

Jorge
joralastair
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2012-12-18 17:48 @783


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 28 invitados