Accessing tcl/tk global variables from callbacks

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.

Message-ID: <37325.147.91.1.43.1133555873.squirrel@webmail.f.bg.ac.yu>

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')

···

From: "Bojan Petrovic" <bpetrovi@f.bg.ac.yu>
Subject: Accessing tcl/tk global variables from callbacks
Date: Sat, 3 Dec 2005 05:43:04 +0900

--
Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)