La Web del Programador: Comunidad de Programadores
 
    Pregunta:  33901 - NO SALTAR A NUEVA PÁGINA AL LLAMAR A UN CGI EN PERL
Autor:  José Félix Renovales
Desde JavaScript realizo llamadas a un CGI en lenguaje Perl para que me permita tratar ficheros, cosa que no puede desde Java Script.
Esta llamada me funciona perfectamente, el problema que tengo es que desaria que me aparecieran los resultados del programa en Perl en la misma página y desde el mismo punto en el que he realizado la llamada.
Ahora al presentar los datos, resultado de tratar los ficheros, he de presentarlo en página nueva.

  Respuesta:  Patxi Perales
Tu problema es que estás llamando al script de PERL como acción de formulario o como referencia. Te sugiero que llames a tus scripts de PERL desde JavaScript de forma que generen más código JavaScript.

En el HTML la llamada sería:
<script language="JavaScript" src="cgi-bin/miCGI.cgi"></script>

En el script 'miCGI' de PERL puedes hacer
...
print "Content-type: application/x-javascript\n\n";
print "function f() {\n";
.....
print "}\n";
...

Observa que PERL genera código y no text/html

Otra forma de entrar en PERL sin saltar de URL es hacer una llamada desde algún elemento HTML que no sea formulario ni referencia. Por ejemplo, desde la celda de una tabla:
<TD>
<SCRIPT LANGUAGE="JavaScript"><!--
document.write("<SCRIPT LANGUAGE=JavaScript
src=../cgi-bin/miCGI2.cgi></SCRIPT>");
//--></SCRIPT>
</TD>