なひです.

> From: wakou / fsinet.or.jp [mailto:wakou / fsinet.or.jp]
> Sent: Friday, September 03, 1999 3:09 AM

> >   (ii) foo.cgi?b=&b=のとき
> >     5. cgi[ "a" ] == []
> >     6. cgi[ "b" ] == [ "", "" ]
> >     7. cgi.has_key?( "a" ) == false
> >     8. cgi.has_key?( "b" ) == true
> > 
> > です.あれ,これだと現在のままかな...5.だけ変更になるんですかね.
> 
> そうです。5. が現在は cgi[ "a" ] == nil で、他(1-4も)は同じです。

お騒がせしました.なひも上記案に賛成です.^^;

> > そうですね.なひとしては,
> > 
> >   「ない」というのと「あるけど空文字列」を分けたい,
> > 
> > というのが最初の動機ですので,環境変数を使うのに問題がなければ,
> > そちらを利用して実現したいと思います.
> > 
> > 「Rubyで楽しくプログラミング」という観点からは,
> > 現仕様の方が便利かもしれませんね.なひは青山さんの判断に従いますです.
> 
> とりあえず(?)、無い場合を特別扱いする場合も思い付かず、また、その検出
> 手段もあるという事で、現状ままがいいかもしれませんね。

例えば相手のUser-Agent(の管理者)が,
うっかりFromの後ろに設定すべき値を空のままにしてしまった...
とかくらい? まぁレアケースですし,
「CGIの知ったことじゃない」とも言えるかもしれません.^^;

> 追加。content_length, server_port は多くの場合数値として使われると思わ
> れるので、Integer(ENV["CONTENT_LENGTH"]) のようにするという提案もあり
> ますが、いかがでしょうか? 文字列として使いたい場合には to_s 等とする
> 事にはなりますが。

なひはStringのままでいいと思います.今後新たなヘッダが増えるたびに,
数値のみフィールドかどうか判断して追加していくの,
cgi.rb側としては大変じゃないでしょうか...
またこれまでの「プログラマは要らん仮定をしないように」とも思っているので,
「一様に文字列」に一票です.