如何替换数组名称中的变量?

时间:2012-08-10 14:08:30

标签: arrays tcl

假设filevalue_ $ thefile是一个包含列表

的数组
foreach element [array names thefilevalue_$thefile] {
    puts "[lindex $thefilevalue_[subst $thefile]($element) 0]"
}

但它返回:

can't read "thefilevalue_": no such variable

我在tcl 8.4,我不能升级它。

我该如何解决?

由于

1 个答案:

答案 0 :(得分:6)

使用set并转义括号,例如

array set thefilevalue_test {reds {orange red purple} blues {green blue purple}}
set thefile test
foreach element [array names thefilevalue_$thefile] {
    puts [lindex [set thefilevalue_$thefile\($element\)] 0]
}

这为我输出(Tcl 8.0.5,我也无法升级):

orange
green