# Accessing tcl/tk global variables from callbacks

**URL:** <https://www.ruby-forum.com/t/accessing-tcl-tk-global-variables-from-callbacks/49357>\
**Category:** Ruby\
**Created:** [December 2, 2005, 9:45pm UTC](https://www.ruby-forum.com/t/accessing-tcl-tk-global-variables-from-callbacks/49357 "2005-12-02T21:45:50Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![bpetrovi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/a88e4f/32.png) [@bpetrovi](https://www.ruby-forum.com/u/bpetrovi)\
**Post date:** [December 2, 2005, 9:45pm UTC](https://www.ruby-forum.com/t/accessing-tcl-tk-global-variables-from-callbacks/49357/1 "2005-12-02T21:45:50Z")

</div>

Is there a way to access tcl global variables from a callback by  
directly  
using tcl code?  
This code does not work:

##test.rb###############  
require ‘tk’  
def button\_callback  
p root.ip\_eval(“info globals”)  
root.ip\_eval(“puts $tcl\_version”) #problem  
end  
root=Tk.root  
button=TkButton.new(root){  
command proc{button\_callback}  
}  
button.pack  
root.mainloop  
########################

The interpreter responds with:  
RuntimeError: can’t read “tcl\_version”: no such variable  
Calling “info globals” gives “tcl\_version” as an existing global  
variable

The (almost) equivalent python code works:  
#test.py################  
from Tkinter import \*  
def button\_callback():  
print root.tk.eval(“info globals”)  
root.tk.eval(“puts $tcl\_version”)  
root=Tk()  
button=Button(root)  
button[“command”]= button\_callback  
button.pack()  
root.mainloop()  
########################

Thanks.

---

<div class="post-metadata">

**Author:** ![bpetrovi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/a88e4f/32.png) [@bpetrovi](https://www.ruby-forum.com/u/bpetrovi)\
**Post date:** [December 3, 2005, 8:57am UTC](https://www.ruby-forum.com/t/accessing-tcl-tk-global-variables-from-callbacks/49357/2 "2005-12-03T08:57:43Z")

</div>

From: “Bojan Petrovic” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
Subject: Accessing tcl/tk global variables from callbacks  
Date: Sat, 3 Dec 2005 05:43:04 +0900  
Message-ID: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> def button\_callback  
> p root.ip\_eval(“info globals”)  
> root.ip\_eval(“puts $tcl\_version”) #problem  
> end

root.ip\_eval(‘global tcl\_version; puts $tcl\_version’)

or

root.ip\_eval(‘puts $::tcl\_version’)
