From: Phrogz Date: 2006-11-14T06:40:06+09:00 Subject: Re: Help convert a Perl user to the Ruby Way. Paul Lutus wrote: [snip] > hash ||= {} > > Means "if 'hash' is a hash, do nothing, otherwise create a hash". To be precise, that is not what that means. It means: hash = hash || {} which can be interpreted as: "If the 'hash' variable is nil or false, set it to a new Hash; otherwise, leave it alone (assigning it to itself)." In practice it is used to mean what you say (if this variable isn't already what I want it to be, set it to that thing), so your comment largely stands as correct. I just don't want anyone coming to Ruby to read that and think it's some special syntax that involves the object on the right hand side in the decision of whether or not the assignment should occur.