Hay algunas mejoras que puede realizar en este código.
- Siempre tenga
use strict
yuse warnings
en tu código. Y solucione los problemas que revelan (principalmente declarando variables conmy
por lo que parece). - Tienes que
use CGI /:standard/
que importa una gran cantidad de funciones de CGI en su espacio de nombres, pero luego solo llama a esas funciones como métodos en su objeto CGI (en$q
) por lo que la importación es innecesaria. - Utiliza notación de objeto indirecto (
new CGI
) para crear su objeto CGI. Esto funcionará el 99% del tiempo, pero en los raros casos en que se rompa, perderá días rastreando el problema. Mucho mejor usarCGI->new
en su lugar. - Las funciones de creación de HTML en CGI.pm (se usa
start_html()
) han sido en desuso desde hace algún tiempo . Por favor, no los use. - Es probable que tener HTML sin formato en su código Perl sea un problema de mantenimiento (como parece haber descubierto, dados los errores en su HTML). Recomiendo enfáticamente mover su HTML fuera de su código Perl y dentro de las plantillas. CGI::Alternativas tiene algunas sugerencias sobre cómo hacer esto.