> インスタンス変数にしたい気持ちはとてもわかるんですが、
> 変数名として不正な場合(@fields["Content-length"] とか)
> があるんではないですか?

すっかり考えから落ちていました。^^;
だけど、フィールド名はこちらで決められるので、それはないもの
と仮定することはできます。

> それから不正な場合がなくて、かつフィールドのタグが固定な
> 場合は構造体(Struct)を使うのも自然です。

うーんと、構造体をどう使うのかわかりませんでした。フィールド
には、必須のものもあるけど、任意のものもあるので、レコードに
よってフィールド数が違うのですが、case文を書かずに構造体に代
入しようと思えば、結局evalがいるのではないでしょうか?

> 遅いのは eval() を使っているからでしょう。lib の

そうみたいです。

-- 
川村 尚生