From: Phrogz Date: 2010-04-18T10:56:03+09:00 Subject: Re: Undifined local variable or method error On Apr 17, 11:30 am, Simbolla Simbolla wrote: > h={} > arr=[] > def gethash >   h[1]=0 >   return h > end > arr[0]=gethash > puts arr[0].each {|k,v| puts "key #{k} value #{v}"} > > For the above i get error saying "Undifined local variable or method 'h' > for main:Object(NameError)" If you want h to be a global variable, accessible everywhere, prefix it with a dollar sign: $h={} def foo $h[1]=0 $h end foo p $h #=> {1=>0}