Det finns några förbättringar som du kan göra i den här koden.
- Använd alltid
use strict
ochuse warnings
i din kod. Och fixa problemen de avslöjar (för det mesta deklarera variabler medmy
av det ser ut). - Du har
use CGI /:standard/
som importerar en mängd CGI:s funktioner till ditt namnområde, men sedan anropar du bara dessa funktioner som metoder på ditt CGI-objekt (i$q
) så att import är onödig. - Du använder indirekt objektnotation (
new CGI
) för att skapa ditt CGI-objekt. Detta kommer att fungera 99% av tiden men i de sällsynta fallen när det går sönder kommer du att slösa dagar på att spåra problemet. Mycket bättre att användaCGI->new
istället. - Funktionerna för att skapa HTML i CGI.pm (du använder
start_html()
) har utfasad sedan en tid tillbaka . Vänligen använd dem inte. - Att ha rå HTML i din Perl-kod är sannolikt ett underhållsproblem (som du verkar ha upptäckt, med tanke på felen i din HTML). Jag rekommenderar starkt att flytta din HTML från din Perl-kod och till mallar. CGI::Alternatives har några förslag på sätt att göra detta.