From: Aristarkh A Zagorodnikov Date: 2001-02-14T23:52:56+09:00 Subject: [ruby-talk:10842] Possible bug in Hash implementation Hello ! First, I want to excuse - because this may be not a bug in ruby, but a bug in my DNA ;) I tried following on: 1.6.2/i686-linux, 1.6.2 stable-snapshot/i686-linux, 1.7.0/i686-linux, 1.6.2/i586-win32, 1.7.0/i586-cygwin, 1.7.0/i586-mswin32. When $= is set to true (case-insensitive), hash access is ... errrm ... invalid for textual keys at least. It precisely lists the hash ('print hash.inspect' prints hash with keys/values), but accessing to hash using one of the keys (even value, recieved from each iterator: 'hash.each {|k, v| print hash[k]}, produces nil. Maybe it is the intended behaviour ... but it is at least breaking the logic ... and I love ruby for logic. #!/usr/local/bin/ruby class StoredMethod attr_accessor :name, :desc def initialize (name, desc) @name, @desc = name, desc end end class StoredClass attr_accessor :name, :members, :desc def initialize (name, desc) @name, @members, @desc = name, {}, desc end end $classes = {} $classes['TestClass'] = StoredClass.new 'TestClass', 'TestClass description' $classes['TestClass'].members['TestMember']={'name' => 'TestMember', 'desc' => 'TestMember description' } saved = $= # comment next line to get valid results $= = true $classes.each_value {|cl| cl.members.each_value {|c| p c p c['name'] } } $= = saved Aristarkh A Zagorodnikov, Lead Programmer, W3D Group http://www.w3d.ru /// xm@w3d.ru /// ICQ UIN 36987938