原です。

> まつもと ゆきひろです.

> HashとArrayでは性質も使われ方も違いますから必ずしも揃えてお
> く必要はないと思います.もちろん他に理由がなければわざわざ違
> える必要もないわけですが.


私も賛成です。Hash と Array はかなりイメージ違っているので、
違っていてもいい気がします。つまり Hash が id 式でもいいと。


ところで、Hash に Hash を入れる様なスクリプトをでっちあげて
みました。サブディレクトリまで検索する dir です。

-----^ xdir.rb
#!/usr/local/bin/ruby
def get_dir(hash)
  dir = hash[nil]
  Dir.foreach(dir) do |d|
    d = dir + "/" + d
    h = {nil => d}
    if d !~ /\/\.\.?$/ && File.directory?(d)
      hash[h] = "<DIR>"
      get_dir(h)
    elsif File.file? d
      hash[h] = File.stat(d).size
    end
  end
end

def print_dir(hash)
  hash.each do |k, v|
    next unless k
    printf("%-30s %s\n", k[nil], v)
    print_dir(k)
  end
end

dir = ARGV[0]
hash = {nil => dir}
get_dir(hash)
print_dir(hash)
-----$ xdir.rb


こんなえげつないの、動くもんかと思ったんだけど、
現在の ruby では動くんだなこれが。^^;