作为一个简单的例子,我只想循环打开/关闭文件,并使用一个变量来创建另一个变量。在PERL中,这很容易,但我在TCL中解决了这个问题
set gsrs ""
lappend gsrs "sir"
lappend gsrs "dir"
foreach gsr $gsrs {
set file "sdrv/icc/instance_toggle_overwrite.$gsr.txt"
puts "*** I : Generating $file"
set tempGSR gsr
puts "$$tempGSR" # would like output to be value of $gsr
set $gsr [open $file "w"] # normally you would not use a variable here for filename setting
close $$gsr
}发布于 2020-03-27 01:14:37
通常不建议使用双重取消引用,因为它会导致很难维护的复杂代码。但是,如果您坚持这样做,那么可以使用带有一个参数的set:
puts [set $tempGSR]通常,考虑使用这种东西是一个迹象,表明应该使用upvar (可能是upvar 0)或数组。
https://stackoverflow.com/questions/60872345
复制相似问题