这是我正在尝试做的一个例子.
set t SNS
set ${t}_top [commands that return value]
Run Code Online (Sandbox Code Playgroud)
想要将信息存储在$ {t} _top
puts “${t}_top”
? SNS_top (really want the data stored there?)
Run Code Online (Sandbox Code Playgroud)
以为是:$ {{$ t} _top},也许那是perl但{}里面的{}不起作用.
关于Tcl的一个非常有趣的事情是,您可以动态创建变量名称,就像您在发布的问题中所做的那样.但是,这使编写变得棘手并使您的代码难以理解.
而不是试图弄清楚如何做等价的$ {{$ t} _top},完全避免这个问题可能更好.您可以使用关联数组来完成此操作.
例如,而不是这样:
set t SNS
set ${t}_top [commands that return value]
...
puts [set ${t}_top]
Run Code Online (Sandbox Code Playgroud)
做这个:
set t SNS
set top($t) [commands that return value]
...
puts $top($t)
Run Code Online (Sandbox Code Playgroud)
大多数人都同意后一个例子更具可读性.