<URL:http://www.cc.rim.or.jp/~midorin/mad-p/perl/benkyou/199909/>
RubyでもPEGS記法みたいに変数とオブジェクトをきっちり区別できる図で説明すれば変数はすべて参照ということがわかりやすいかも。
追い続けるのはかなり苦しい。 時々まとめて更新するのが現実的かも。 でもそれだとたまりすぎると更新しなくなりそうだし。 なかなか難しい。
Rubyのスコープの種類はこんな感じかな。
ローカル変数
ファイル毎のmain
class,module,defからendまで
ブロック
グローバル変数(例:$gvar)
インスタンス変数(例:@ivar)
定数
相対的(例:Const)
絶対的(例:File::Stat)
クラス変数(例:@@cvar)
メソッド
可視性(public,private,protected)
クラスメソッドかインスタンスメソッドか
スレッド固有データ(例:thread[name])
メソッドを入れようとしてまとめ方がちょっと変になったかも。
[:alnum:]。 [ruby-list:24055]参照。 undocumentedなので使わないのが一番いいのですが念のため。