TCL使用变量生成可变对象,并使用变量打开/关闭文件

  • 本文关键字:变量 文件 对象 TCL tcl
  • 更新时间 :
  • 英文 :


作为一个简单的例子,我只想循环打开/关闭文件,并使用一个变量来创建另一个变量。在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
}

通常不建议双重取消引用,因为这会导致很难维护的复杂代码。但是,如果你坚持要这样做,那么使用set一个参数来做:

puts [set $tempGSR]

通常,考虑使用这种东西意味着应该使用upvar(可能是upvar 0(或数组。

最新更新