Tcl upvar到另一个proc中的变量

时间:2013-07-05 14:28:18

标签: tcl upvar

我有两个触发器:从MAIN我调用另一个proc Glob$Allforces是一个列表清单。

proc ::MAIN {} {  
    # something
    ::Glob $AllForces
}

proc ::Glob {Input} {
    upvar $Input AllForces
    # do something
}

我将“No such variable”作为我的attemt错误upvar。 所以我试过了:

upvar $InputMPCForces ::MAIN::AllForces

然后我得到:“upvar won't create namespace variable that refers to procedure variable

如何通过引用从AllForces中的MAIN访问Glob

1 个答案:

答案 0 :(得分:4)

你需要像这样调用你的proc:

::Glob AllForces

即,您传递变量的名称,而不是其值。

然后,在proc中,upvar命令将获取其名称为局部变量input的值的变量,并使其在本地作为AllForces

使用