# Determining local variables

**URL:** <https://www.ruby-forum.com/t/determining-local-variables/131117>\
**Category:** Ruby\
**Created:** [March 6, 2008, 7:10am UTC](https://www.ruby-forum.com/t/determining-local-variables/131117 "2008-03-06T07:10:40Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![svy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/54ee81/32.png) [@svy](https://www.ruby-forum.com/u/svy)\
**Post date:** [March 6, 2008, 7:10am UTC](https://www.ruby-forum.com/t/determining-local-variables/131117/1 "2008-03-06T07:10:40Z")

</div>

Is there any way to determine what local variables are currently  
defined? (possibly using binding? thread?)  
Is there any way similar to how an array of current instance variables  
can be found?  
Thanks

---

<div class="post-metadata">

**Author:** ![svy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/54ee81/32.png) [@svy](https://www.ruby-forum.com/u/svy)\
**Post date:** [March 6, 2008, 7:58am UTC](https://www.ruby-forum.com/t/determining-local-variables/131117/2 "2008-03-06T07:58:09Z")

</div>

svy wrote:

> Is there any way to determine what local variables are currently  
> defined? (possibly using binding? thread?)  
> Is there any way similar to how an array of current instance variables  
> can be found?  
> Thanks

Use the #local\_variables and the #instance\_variables methods.

class C  
def foo  
x = 1  
y = 2  
p local\_variables  
z = 3 # note z is included

```
 @x = 10
 @y = 20
 p instance_variables
 @z = 3 # note @z is _not_ included

```

end  
end

C.new.foo

**END**

Output:

[“x”, “y”, “z”]  
["@y", “@x”]
