From: Kyle Schmitt Date: 2007-07-20T07:05:52+09:00 Subject: Re: Hash of arrays - whats going on? default just lets you return a default value if the request key doesn't exist, it's not _supposed_ to change the state of the hash. What was happening is an array was presented to you when you called h['foo'], and you were putting a value in it, but the array was never saved to a variable, so it went away. With the original code try the following code, it may help you understand: h['foo'] << 10 puts h.length h[foo'] << 20 puts h.length