From: Takao KAWAMURA Date: 1998-07-24T00:41:19+09:00 Subject: [ruby-list:8845] mapping a tagged file onto a class 各行にフィルード名と値が含まれ、レコードの区切りは空行という、 よくあるタイプのテキストデータベースがありますよね。ええと、 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版より倍遅いので輪郭をとってみようと思っているの ですが、そういうツールはありましたっけ? -- 川村 尚生