Как получить доступ к переменным среды в классе ITCL?

Я знаю, что в обычном tcl-скрипте к переменным среды можно получить доступ следующим образом:

global env
puts "User: $env(USER)"

set env(IOFILE) "somefile.txt"

но это, похоже, не работает в методе класса ITCL. Как я могу получить и установить переменные среды внутри кода класса ITCL?


person Dronacharya    schedule 23.09.2012    source источник


Ответы (1)


Itcl делает сложные вещи с обнаружением переменных, но вы можете обойти эту хитрость, указав полное имя переменной (команда global свяжет последний компонент имени в локальной области видимости с именованной переменной). Таким образом:

global ::env  ;# <<<<<< Note this <<<<<<

puts "User: $env(USER)"
set env(FOO) "bar"
person Donal Fellows    schedule 23.09.2012