Встроенные команды ТCL
upvar
Команда создает связи между переменными различных уровней стека
Синтаксис
upvar?level? otherVar myVar?otherVar myVar...?
Описание
Команда позволяет одной или больше локальным переменным текущей процедуры ссылаться на переменные процедуры, стоящей выше в стеке, или на глобальные переменные. Аргумент level может иметь те же формы, что и в команде uplevel, или быть опущен, если первый символ в первой из otherVar отличен от цифры и от # (значение по умолчанию 1). Для каждой пары аргументов otherVar myVar команда позволяет сделать переменную с именем otherVar из указанного уровня стека (локальную переменную одной из вызывающих процедур или глобальную переменную, если level равно #0) видимой в исполняемой процедуре под именем myVar. Переменная с именем otherVar не обязана существовать в момент исполнения команды. При необходимости она будет создана при первом использовании переменной myVar. В момент исполнения команды не должно быть доступной переменной myVar. Переменная myVar всегда считается простой переменной (не массивом и не переменной массива). Даже если значение myVar выглядит как имя элемента массива, например, а(b), создается простая переменная. Значение otherVar может быть именем простой переменной, массива или элемента массива. Команда upvar всегда возвращает пустую строку.