[perl] C a Perl

Salvador Ortiz Garcia sog@msg.com.mx
Fri, 27 Nov 1998 22:05:48 -0600 (EST)


On Fri, 27 Nov 1998, Ulises Ponce wrote:

> Tengo un programa hecho en C.
> 
> Puedo llamar desde ese programa a un programa hecho en perl y pasarle a este 
> ultimo algunas variables que manejo en el que esta hecho en C ?
> Cual seria la sintaxis en C ?
> En el programa de perl como recibo esas variables?

Si, por supuesto, puedes desde C ejecutar un script de perl y pasarle los
parametros que quieras. Pero exite una mejor opción, así que vamos por
partes.

Solución simple, un programa en C llama a un script en perl:

En C:
====================
...
   char buff[500];
   int result;
   ...
   sprintf(buff,"/path/del/script.pl %s %d %d %s",
	charvar1, intvar1, intvar2, charvar2)
   result = system(buff);
...
====================

En Perl:
====================
#!/usr/bin/perl

$var1 = $ARGV[0];  # valor de C's charvar1
$var2 = $ARGV[1];  # valor de C's intvar1
$var3 = .... # etc.
....
===================

Mucho más elegante (pero más complejo, depende de que quieras hacer) es
que dentro del mismo programa en C, incrustes un interprete de perl, de
forma que puedes, desde cualquier función en C, ejecutar codigo perl,
llamar a funciones de perl, manipular variables de perl, etc.

La documentación de ésta técnica la encuentras con un 'man perlembed'.

<OFFTOPIC>
Ulises, casí me quisiera esconder debajo del teclado, que pena me dá no
haber podido solucionar el problema de tu BIOS pero no hubo quien
encontrara nada al respecto, si crees que aún algo podamos hacer traeme la
máquina.
</OFFTOPIC>

Saludos

Salvador Ortiz


--------- Pie de mensaje --------------------------------
Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text   : cancelacion perl