From: Yukihiro Matsumoto Date: 2008-05-15T14:55:38+09:00 Subject: Re: Array assignment with multiple args Hi, In message "Re: Array assignment with multiple args" on Thu, 15 May 2008 04:20:35 +0900, Jeff Hales writes: |Hi all. I'm just starting to learn Ruby and have hit a problem that is |being extremely difficult to find information on. When given a line of |code such as: | |a = "this", b = "that", c = "those" | |Is there a concise and elegant way of describing why variable a is |assigned as an array, but variable b is not? There must be a simple |explanation as to 'why' this is happening. The only description of what |is going on here that I have found is that this is interpreted as | |a = "this", (b = "that"), (c = "those") More precisely, a = ("this", (b = "that"), (c = "those")) But I am not sure what you wanted to accomplish by a = "this", b = "that", c = "those" In Ruby, commas are not expression separator. |and not | |a = "this", (b = "that", c = "those") | |and that the arguments are read from right to left. This hasn't really |helped my understanding, as that much can be deduced just by putting the |line through the Ruby interpreter, and I don't see how reading the |assignments from right to left assigns ["this","that","those"] to |variable a but only "that" to variable b. Multiple assignment does not nest. Assignments in right hand side is considered as normal assignments. matz.