このコードに加えることができるいくつかの改善点があります。
- 常に
use strict
を使用する およびuse warnings
あなたのコードで。そして、彼らが明らかにした問題を修正します(主にmy
で変数を宣言します 見た目で) -
use CGI /:standard/
があります これは、CGIの関数のロードを名前空間にインポートしますが、CGIオブジェクト($q
内)のメソッドとしてのみそれらの関数を呼び出します。 )インポートが不要になるようにします。 - 間接オブジェクト表記(
new CGI
)を使用します )CGIオブジェクトを作成します。これは99%の確率で機能しますが、まれに問題が発生した場合、問題の追跡に数日を費やすことになります。CGI->new
を使用する方がはるかに優れています 代わりに。 - CGI.pmのHTML作成関数(
start_html()
を使用します )しばらくの間非推奨 。使用しないでください。 - Perlコードに生のHTMLがあると、メンテナンスの問題になる可能性があります(HTMLのエラーを考えると、発見したようです)。 HTMLをPerlコードからテンプレートに移動することを強くお勧めします。 CGI ::Alternatives これを行う方法についていくつかの提案があります。