Recuerda que puedes reeditar tus propios mensajes. Solo tienes que pulsar el botón EDITAR que aparece en la parte derecha arriba de cada uno de tus mensajes.
Recuerda también que es muy aconsejable que le pongas marcado de código a tu código. Solo tienes que seleccionar con el ratón o teclado, y pulsar el botón Perl (o bash, o HTML, JavaScript o demás) que aparece en la parte superior de la caja de edición, cuando estás publicando una respuesta. Así, es más fácil de leerlo.
Por lo que veo, mezclas CGI, CGI::Session y CGI::Ajax. Vaya lío.
No es que me guste ver código HTML dentro de código Perl. Es que, sencillamente, ya nadie lo hace.
Yo prestaría atención a las comillas que usas en los valores de los atributos de las marcas HTML. Quiero decir que:
- en algunos casos no se lo pones: <form name=frmConsulta, lo cual no es lo aconsejado
- en algunos casos usas comillas simples: <option value='vacio'>, lo cual tampoco es lo aconsejado
- en otros casos usas comillas dobles, que sí es lo aconsejado
El mensaje de error no es de Perl, sino de JavaScript. Quiere decir que, en algún sitio del código se está haciendo referencia a funcion_javascript en un contexto donde no es visible. El caso es que ese nombre no aparece en el código que nos muestras, así que no sabemos qué es lo que está pasando.
Pero lo primero es comprobar que el código HTML+JavaScript que te genera el programa es el que quieres, y que no tiene errores. Usa el visor de código del navegador, para verlo. En Firefox, te coloreará en rojo todos los fallos que encuentre.
Deberás usar alguna herramienta desde el navegador para ver los mensajes de error del JavaScript, para saber qué pasa. Por ejemplo, con el Firefox, se puede instalar el complemento Firebug, que muestra una consola con todos los mensajes de error. De esa manera sabrás en qué línea se está produciendo el error.