hirocyです.

変数を undef できないものでしょうか?

過去のログを探ったところ,[ruby-list:37062] からの議論でも
登場していますが,以下のケースで必要性を感じました.

複数行からなるテキストファイルを読み込む際に,
基本的には一行一行を処理して格納するが,
数行単位でグルーピングされている部分は
同じIDを持たせて格納したい.
たとえば,

---
# ID:1
aaa
bbb
# ID:2
ccc
---

のようなファイルを読み込むとします.
そうすると,

a = []
id = nil
IO.foreach(x) do |line|
	if /^# ID:(.)/ =~ line
		id = $1
	else
		a << id + line.chomp
	end
end

のように書くことを思いつきますが,
この foreach のスコープでしか使われない id が
ずっと生きてしまうのが気持ち悪いんです.再利用もしたい.
たとえ,nilを入れたとしても,スコープが生きてしまいます.

undef id ができないとすると,みなさんはどう書きますか?

でも,書籍「The Ruby Way」の p.283 には変数のundefも
できるって書いてあるんですよね...
もしかして私のrubyが古いせいでしょうか?
 ruby 1.6.7 (2002-03-01) [powerpc-darwin6.0]
 ruby 1.6.7 (2002-03-19) [i386-linux]
でためしています.

// hirocy