【发布时间】:2013-11-28 07:05:53
【问题描述】:
我遇到了这个奇怪的问题。 我正在使用 tcl 8.3
在我在 tcl shell 中定义这个过程之后
% proc incr { varName {amount 1}} {
puts $varName
upvar #0 $varName var
puts $varName
if {[info exists var]} {
set var [expr $var + $amount]
} else {
set var $amount
}
return $var
}
我一直在努力
%
history(nextid)
history(nextid)
history(oldest)
history(oldest)
%
之后每次我按换行符“Enter” 有人知道为什么会这样吗?
【问题讨论】:
-
你可能只想
upvar $varName var-- 使用#0意味着你只能将你的proc与全局变量一起使用,不会看到局部变量。