# Instance variables on anonymous objects does not work?

**URL:** <https://www.ruby-forum.com/t/instance-variables-on-anonymous-objects-does-not-work/160249>\
**Category:** Ruby\
**Created:** [February 13, 2009, 12:03pm UTC](https://www.ruby-forum.com/t/instance-variables-on-anonymous-objects-does-not-work/160249 "2009-02-13T12:03:08Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![LAMBEAU\_Bernard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/5fc32e/32.png) [@LAMBEAU\_Bernard](https://www.ruby-forum.com/u/LAMBEAU_Bernard)\
**Post date:** [February 13, 2009, 12:03pm UTC](https://www.ruby-forum.com/t/instance-variables-on-anonymous-objects-does-not-work/160249/1 "2009-02-13T12:03:08Z")

</div>

Could someone explain why the following code does not work?

… and sorry because I guess it’s something stupid that I didn’t catch  
in Ruby.

a = Object.new.instance\_eval do  
@names = [“you”, “me”]  
end  
def a.say\_hello  
puts "Hello: " \<\< @names.inspect  
end  
a.say\_hello

the code prints Hello: nil

thx  
blambeau

---

<div class="post-metadata">

**Author:** ![LAMBEAU\_Bernard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/5fc32e/32.png) [@LAMBEAU\_Bernard](https://www.ruby-forum.com/u/LAMBEAU_Bernard)\
**Post date:** [February 13, 2009, 12:05pm UTC](https://www.ruby-forum.com/t/instance-variables-on-anonymous-objects-does-not-work/160249/2 "2009-02-13T12:05:04Z")

</div>

Much more strange: why does this one work?? Same behavior on both ruby  
1.8.7 and ruby 1.9

a = Object.new  
a.instance\_eval do  
@names = [“you”, “me”]  
end  
def a.say\_hello  
puts "Hello: " \<\< @names.inspect  
end  
a.say\_hello

the code prints Hello: [“you”, “me”]

---

<div class="post-metadata">

**Author:** ![LAMBEAU\_Bernard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/5fc32e/32.png) [@LAMBEAU\_Bernard](https://www.ruby-forum.com/u/LAMBEAU_Bernard)\
**Post date:** [February 13, 2009, 12:08pm UTC](https://www.ruby-forum.com/t/instance-variables-on-anonymous-objects-does-not-work/160249/3 "2009-02-13T12:08:44Z")

</div>

OK, something that I didn’t catch of course.

a = … invocation is wrong.

Sorry for the stupid question.  
blambeau

---

<div class="post-metadata">

**Author:** ![LAMBEAU\_Bernard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/5fc32e/32.png) [@LAMBEAU\_Bernard](https://www.ruby-forum.com/u/LAMBEAU_Bernard)\
**Post date:** [February 23, 2009, 6:06am UTC](https://www.ruby-forum.com/t/instance-variables-on-anonymous-objects-does-not-work/160249/4 "2009-02-23T06:06:15Z")

</div>

On Mon, Feb 23, 2009 at 10:06 AM, Zayd C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> How is the a =… invocation wrong? Just coming from a curious ruby  
> beginner

Compare the value of a in both cases (in irb):

01\> a = Object.new  
 → #Object:0x732e7c  
02\> a.instance\_eval do  
03\> @names = [“you”, “me”]  
04\> end  
 → [“you”, “me”]  
05\> a  
 → #\<Object:0x732e7c @names=[“you”, “me”]\>

06\> a = Object.new.instance\_eval do  
07\> @names = [“you”, “me”]  
08\> end  
 → [“you”, “me”]  
09\> a  
 → [“you”, “me”]

Does that help?  
lasitha

---

<div class="post-metadata">

**Author:** ![LAMBEAU\_Bernard](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/5fc32e/32.png) [@LAMBEAU\_Bernard](https://www.ruby-forum.com/u/LAMBEAU_Bernard)\
**Post date:** [February 23, 2009, 5:37am UTC](https://www.ruby-forum.com/t/instance-variables-on-anonymous-objects-does-not-work/160249/5 "2009-02-23T05:37:15Z")

</div>

LAMBEAU Bernard wrote:

> OK, something that I didn’t catch of course.
> 
> a = … invocation is wrong.
> 
> Sorry for the stupid question.  
> blambeau

How is the a =… invocation wrong? Just coming from a curious ruby  
beginner
