各行にフィルード名と値が含まれ、レコードの区切りは空行という、
よくあるタイプのテキストデータベースがありますよね。ええと、

DATABASE : (RECORD "\n")*
RECORD   : (FIELD "\n")*
FIELD    : KEY "\t" VALUE

でいいのかな? (KEY,VALUEは文字列)

こういうテキストデータベースを読んで、各レコードをインスタン
スにし、各KEYをインスタンス変数にしたいのです。

とりあえずこんなコードで動いてはいるのですが、読みにくいし、
Ruby流じゃない気がします。

    def initialize(record)
        record.chomp.each_line do |l|
            eval "@#{l.chomp.sub(/\t+/, '=\\'')}\'"
        end
    end

実はこれ、Perlスクリプトを移植しているのですが、せっかく読み
やすくなったスクリプトがここだけ変な感じ。evalを使わずに、もっ
と直截に書く方法はないでしょうか?

それと、Perl版より倍遅いので輪郭をとってみようと思っているの
ですが、そういうツールはありましたっけ?

-- 
川村 尚生