Има няколко подобрения, които можете да направите в този код.
- Винаги използвайте
use strictиuse warningsвъв вашия код. И коригирайте проблемите, които разкриват (предимно деклариране на променливи сmyкакто изглежда). - Трябва да
use CGI /:standard/който импортира множество функции на CGI във вашето пространство от имена, но след това вие извиквате тези функции само като методи на вашия CGI обект (в$q), така че импортирането е ненужно. - Използвате нотация за непряк обект (
new CGI), за да създадете вашия CGI обект. Това ще работи 99% от времето, но в редките случаи, когато се повреди, ще загубите дни в проследяване на проблема. Много по-добре е да използватеCGI->newвместо това. - Функциите за създаване на HTML в CGI.pm (използвате
start_html()) са били отхвърлен от известно време . Моля, не ги използвайте. - Наличието на необработен HTML във вашия Perl код вероятно ще бъде проблем с поддръжката (както изглежда сте открили, предвид грешките във вашия HTML). Силно препоръчвам да преместите вашия HTML от вашия Perl код в шаблони. CGI::Alternatives има някои предложения за начини да направите това.