Ada beberapa perbaikan yang dapat Anda lakukan pada kode ini.
- Selalu
use strict
danuse warnings
dalam kode Anda. Dan perbaiki masalah yang mereka ungkapkan (kebanyakan mendeklarasikan variabel denganmy
dari kelihatannya). - Anda telah
use CGI /:standard/
yang mengimpor banyak fungsi CGI ke dalam namespace Anda, tetapi kemudian Anda hanya memanggil fungsi tersebut sebagai metode pada objek CGI Anda (dalam$q
) sehingga impor tidak diperlukan. - Anda menggunakan notasi objek tidak langsung (
new CGI
) untuk membuat objek CGI Anda. Ini akan bekerja 99% dari waktu tetapi dalam kasus yang jarang terjadi ketika rusak Anda akan membuang-buang waktu untuk melacak masalahnya. Jauh lebih baik menggunakanCGI->new
sebagai gantinya. - Fungsi pembuatan HTML di CGI.pm (Anda menggunakan
start_html()
) telah tidak digunakan lagi untuk beberapa waktu sekarang . Tolong jangan menggunakannya. - Memiliki HTML mentah dalam kode Perl Anda kemungkinan akan menjadi masalah pemeliharaan (seperti yang tampaknya telah Anda temukan, mengingat kesalahan dalam HTML Anda). Saya sangat menyarankan memindahkan HTML Anda dari kode Perl Anda dan ke dalam template. CGI::Alternatives memiliki beberapa saran tentang cara melakukannya.