From: "HIGAKI Masaru (ひがき まさる)" (=?ISO-2022-JP?B?GyRCJFIkLCQtGyhC?= =?ISO-2022-JP?B?IBskQiReJDUkaxsoQg==?=) Date: 2000-07-04T18:11:37+09:00 Subject: [ruby-list:23687] file から読み込んだ文字列の #{} ひがきといいます。 text file中に #{} を書いておいて、それを Rubyで読み 込んだときに式展開させる方法はないでしょうか? |$ cat sample.txt |sample #{val} という fileを用意しておいて、 |#! /usr/local/bin/ruby | |val = 1 | |file = open("sample.txt", "r") | |file.each{|buf| | print buf |} | |file.close という scriptを書いたのですが、 実行結果は、 |$ ./sample.rb |sample #{val} というように、#{} がそのまま表示されてしまいます。 リファレンスマニュアルを見ると、 |文字列中の式展開 | |例: | "my name is #{$ruby}" | |ダブルクォート(")で囲まれた文字列式,コマンド文字列 |および正規表現,の中では#{式}という形式で式の内容(を |文字列化したもの)を埋め込むことができます. というのがあったので、それじゃあ正規表現にしちゃえ と思って、出力を |file.each{|buf| | print Regexp.new(buf) |} に変えてみたのですが、結果は |$ ./sample.rb |# のようになりました。 正規表現は compileしちゃって原形を留めていないんですね。 きっと。 ちなみに、実際に使用している Rubyの versionは、 |$ ruby -v |ruby 1.4.4 (2000-04-14) [i386-freebsd2.2.8] です。 --ひがき