Depuración de secuencias de comandos CGI de Perl

Perl es un lenguaje de programación de computadora de código abierto y multiplataforma que se usa ampliamente tanto en el sector comercial como en el privado. Perl es popular entre los desarrolladores web debido a sus capacidades de procesamiento de texto y resolución de problemas adaptables y en constante evolución. Aunque Perl se desarrolló inicialmente para la edición de texto, su flexibilidad lo convierte en una herramienta versátil para una variedad de tareas.

Hemos analizado algunas de las cosas que pueden generar errores frecuentes, pero no todo es un problema común. Si tiene problemas y ninguna de las opciones funciona para CGI, deberá investigar un poco. En esta parte, veremos varias herramientas que pueden ayudarlo a localizar la causa del problema. Aquí hay un resumen rápido de las acciones que puede tomar:

  • Usando el interruptor -c, puede verificar la sintaxis de sus scripts.
  • Examine los registros de errores en el servidor web.
  • Use la línea de comando para ejecutar su script. Volcar variables al navegador le permite probar sus valores.
  • Utilice un depurador interactivo.

Verificación de sintaxis

Si su código no analiza ni compila, nunca se ejecutará correctamente. Entonces, antes de probar sus scripts en el navegador, practique probarlos usando el indicador -c desde la línea de comando, y mientras lo hace, verifique si hay advertencias usando el indicador -w. Recuerde que si usa el modo corrupto (lo que probablemente hace con todos sus scripts), también debe pasar el parámetro -T para evitar el siguiente error: myScript.cgi -wc perl La opción «-T» ya no está disponible. Como resultado, use el 

perl -wcT calendar.cgi

Examinar los registros de errores

Los errores a menudo se informan a STDERR y, en ciertos servidores web, todo lo que se produce en STDERR mientras se ejecuta un script CGI aparece en los registros de errores. Cuando tiene un problema, normalmente puede encontrar mucha información importante al revisar estos registros. Este archivo se puede encontrar en:

/usr/local/apache/logs/error log o /usr/var/logs/httpd/error log con Apache. 

Los errores se agregan al final del registro; debe vigilarlo mientras prueba su script CGI. Si ejecuta el comando tail con la opción -f

$cola -f /usr/local/apache/logs/error_log

Scripts ejecutados desde la línea de comandos

Después de que sus scripts hayan pasado una verificación de sintaxis, puede intentar ejecutarlos desde la línea de comandos. Debido a que los programas CGI dependen en gran medida de las variables de entorno , puede configurar manualmente estas variables antes de ejecutar su secuencia de comandos.

$exportar HTTP_COOKIE=”user_id=abc123″ 

$exportar QUERY_STRING=”mes=enero&año=2001″ 

$exportar SOLICITUD_METHOD=”OBTENER” 

$./calendario.cgi

Depurador para Perl

Terminará en una sesión interactiva si ejecuta Perl con el modificador -d. Lamentablemente, esto implica que el depurador solo se puede usar a través de la línea de comandos. Aunque este no es el entorno típico para los scripts CGI, como mostramos antes, no es sencillo replicar el entorno CGI. Guardar un objeto CGI en un archivo de consulta, inicializar cualquier otra variable de entorno que pueda necesitar, como cookies, y luego ejecutar su secuencia de comandos CGI de esta manera es el mejor método para hacerlo.

$perl -dT calendario.cgi 

Cargando rutinas DB desde perl5db.pl versión 1 

Compatibilidad con Emacs disponible

Introduzca h o `h h’ para obtener ayuda. 

main::(Dev:Pseudo:7): mi $q = nuevo CGI; BD<1>

Al principio, el depurador puede dar miedo, pero es realmente poderoso. 

La tabla proporciona una descripción general rápida de todos los comandos fundamentales que necesitará para solucionar un script para comenzar. Aunque hay muchas más herramientas disponibles, puede depurar todos sus scripts CGI con solo estas instrucciones. Para comprender cómo navegar por el depurador, practique los programas que ya sabe que funcionan correctamente. Debido a que el depurador no modifica sus archivos, no puede interrumpir un script en funcionamiento ingresando un comando incorrecto.

Dominio Descripción
s

Paso; Perl ingresa a cualquier subrutina y ejecuta la línea que se muestra arriba del aviso. Vale la pena señalar que evaluar una línea con varias instrucciones puede tomar algunos pasos.

norte

Después de eso, Perl ejecuta la línea que se encuentra arriba del indicador, omitiendo las subrutinas (todavía se ejecutan; Perl espera a que terminen antes de continuar)

punto de interrupción

Continúe hasta que el programa finalice o se alcance el siguiente punto de interrupción, lo que suceda primero.

123 Continúe hasta llegar a la línea 123, que debe incluir un comando (no puede ser un comentario, una línea en blanco, la segunda mitad de un comando, etc.)
b

Establecer un punto de interrupción en la línea actual; Los puntos de interrupción detienen la ejecución del código que ha sido detenido por c.

123

Coloque un punto de interrupción en la línea 123, que debe incluir un comando (no puede ser un comentario, una línea en blanco, la segunda mitad del comando, etc.).

b mySub

Establecer un punto de interrupción en la primera línea ejecutable de mi sub.

d

Elimina un punto de interrupción de la línea actual y acepta los mismos parámetros que b.

D

Eliminar punto de interrupción

Conclusión

Hay dos requisitos para usar ptkdb. Primero necesitará un servidor X Window; el sistema X Window se incluye con la mayoría de los sistemas Unix y similares, y también hay versiones comerciales disponibles para otros sistemas operativos. En segundo lugar, el servidor web debe contener el módulo Tk.pm, que necesita Tk y es accesible en CPAN. Tk es una biblioteca de gráficos que viene con el lenguaje de programación Tcl. 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *