cgi-lib.plの利用上の注意
注意:CHECKBOXフォームで複数のボタンに同じ名前をつけた場合や、SELECT形式のメニューフォームで複数選択を許可した場合、 たとえば、


や、

とした場合で、1番と3番の選択肢が選ばれた場合、渡されるデータはaaa=1&aaa=3と同じaaaという名前で2つの値を持ったものになる。
これをReadParseサブルーチンで分割すると、$in{“aaa”}=”1\03”;となる。
つまりaaaというキーの連想配列に\0という記号を区切りとして2つのデータ1と3が並ぶことになる。
よってこのような場合はさらに、cgi-lib.plパッケージの中のSplitParamサブルーチンを使って、

@bbb=&SpritParam($in{“aaa”});
とすることによって、@bbb=(“1”,”3”)と言う形で保存される。
それぞれの値は$b[0]、$b[1]によって参照することができる。
(、)で囲まれた部分はサブルーチンへの引数(渡すデータ)を表していて、 このサブルーチンでは\0で区切られたデータが渡されてそれが配列データの形で送り返されてくることになる。

例題
CHECKBOXとSELECTのフォームをそれぞれHTMLで作り、CGIでどのように表示されるか見る。