みなさん、こんにちは。みかみと申します。

 いつもお世話になっております。表題の件で質問です。
どうぞ宜しくお願いします。クラス変数をモジュールの
メソッドから参照したいので次のようにしました。


module Fuga

  def fuga_var
    self.class.class_eval { return @@class_var }
  end

end

class Hoge

  include Fuga

  @@class_var = 'Hoge class variable'

  def hoge_var
    return @@class_var
  end

end

hoge = Hoge.new
puts hoge.hoge_var
puts hoge.fuga_var


ruby-1.8.1 でこれを実行すると、次のようになります。

% ruby18 test.rb
Hoge class variable
test.rb:6:in `fuga_var': uninitialized class variable
@@class_var in Fuga (NameError)


 散々悩んで、ふと、ruby-1.6.3 で実行したら
次のようになりました。

% ruby16 test.rb
Hoge class variable
Hoge class variable


 1.8.1 の結果は、そういうものなのでしょうか?だとすると
どういう風にすると 1.6.3 のような結果が得られるのでしょうか?
ご助言頂ければ幸いです。宜しくお願い致します。