From: Stefan Rusterholz Date: 2007-07-07T01:47:16+09:00 Subject: Re: keep getting an error saying that this array value is ni Nathan Taylor wrote: > elemkeysraw = str.split(/=(?!>)/) > i = elemkeysraw.length > scr.printw("This is the value of hashargs is #{hashargs} and it's class > is > #{hashargs.class} and elemkeysraw[i] is #{elemkeysraw[i]} > elemkeysraw[i].split(/=>/)[0] is #{elemkeysraw[i].split(/=>/)[0]}") > > This is the chunk of code,, and the elemkeysraw[i].split(/=>/)[0] causes > an > error; > > private method `split' called for nil:NilClass (NoMethodError) > > However elemkeysraw[i] provides a value. What's the deal with this? > I'm > guessing it is because the fact that "i" is not evaluated until runtime, > but > why does the element reference work, but not when attempting to use a > string > method on the value that is contained there? Nil is a value. [][5] # => nil; "#{nil}" # => "" Instead of wild guessing, I suggest you do #{elemkeysraw[i].inspect} instead of just #{elemkeysraw[i]}. That gives you a better picture what you really have, since #{} calls to_s on the value it encloses. Regards Stefan -- Posted via http://www.ruby-forum.com/.