Det finns några förbättringar som du kan göra i den här koden.
- Använd alltid
use strictochuse warningsi din kod. Och fixa problemen de avslöjar (för det mesta deklarera variabler medmyav 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->newistä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.