Página 1 de 1

Recibir y enviar parámetros desde PHP a Perl

NotaPublicado: 2012-02-10 11:10 @507
por irwinvalera
Buen día a todos. Es mi segundo mensaje y necesito de su ayuda, he revisado varios post acerca de enviar parámetros a Perl desde PHP y cómo ejecutarlo y hasta allí todo normal, sin ningún problema. El detalle viene a ser ¿cómo recibo los parámetros enviados desde PHP? Creo que hasta ahora nadie ha hablado de eso o soy tan ciego que no lo vi. Les agradezco inmensamente su respuesta. Mis códigos son:

En PHP
Sintáxis: [ Descargar ] [ Ocultar ]
Using php Syntax Highlighting
  1. $ruta = "./ruta.pl";
  2. system ("$ruta $cod_ip", $salida);
  3. print_r($salida);
  4.  
Coloreado en 0.019 segundos, usando GeSHi 1.0.8.4


En Perl
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. Esto es lo que necesito.
  2.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Re: Recibir y enviar parámetros desde PHP a Perl

NotaPublicado: 2012-02-10 11:22 @515
por explorer
Sí que hay hilos que hablan del intercambio de información entre PHP y Perl (no PERL), en los dos sentidos. Solo hay que buscar un poco más :)

Re: Recibir y enviar parámetros desde PHP a Perl

NotaPublicado: 2012-02-10 11:24 @517
por irwinvalera
¡Me auto-respondo! Ya solucioné el problema :D Fue fácil en realidad. Les dejo el código para que alguien lo pueda usar.

En PHP:
Sintáxis: [ Descargar ] [ Ocultar ]
Using php Syntax Highlighting
  1. $ruta = "./ruta.pl";
  2. system ("$ruta $var1 $var2 $var3", $salida);
  3.  
Coloreado en 0.009 segundos, usando GeSHi 1.0.8.4


En Perl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #! /usr/bin/perl
  2. #Cada variable será recibida en el orden que fue enviada.
  3. print @ARGV[0] . " - " . @ARGV[1] . " - " . @ARGV[2];
  4.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Un sencillo ejemplo de como usar PHP y Perl enviando y recibiendo parámetros e imprimiéndoles =)

Re: Recibir y enviar parámetros desde PHP a Perl

NotaPublicado: 2012-02-10 11:56 @539
por explorer
Es un error muy común, de la gente que empieza, escribir cosas como

@ARGV[0]

cuando, realmente, se debe escribir así:

$ARGV[0]

El símbolo que hay delante de la variable (el sigilo), indica qué queremos obtener de la variable.
Si es un '$' estamos indicando que solo queremos un escalar.
Si ponemos un '@' indicamos que queremos una lista de escalares.
Y esto es independiente de que @ARGV sea un array o no (incluso podría ser un hash. Más información en perldoc perldata).

Así que entonces, tu programa queda mejor así:

print $ARGV[0] . " - " . $ARGV[1] . " - " . $ARGV[2];

Aunque quedaría más corto así:

print join ' - ', @ARGV;

y así ya no dependes del número de argumentos (incluso si es uno solo).

Aún más... quedaría perfecto si no tuvieras la necesidad de usar PHP :)

Re: Recibir y enviar parámetros desde PHP a Perl

NotaPublicado: 2012-02-10 12:21 @556
por irwinvalera
Tú si que eres un gurú en esto, explorer. Yo recién empiezo. Bueno, se usa Perl y PHP por un tema muy amplio en realidad. En fin... Muy buena la respuesta. Lo haré como me dices =) ¡Gracias!