TCL使用变量生成变量,并使用变量打开/关闭文件
作为一个简单的例子,我只想循环打开/关闭文件,并使用一个变量创建另一个变量。在PERL中,这很容易,但我在TCL中无法理解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
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
)或数组。通常不建议使用双解引用,因为它会导致很难维护的复杂代码。但是,如果您坚持这样做,则使用带有一个参数的set
:
puts [set $tempGSR]
通常,考虑使用这种东西是一种迹象,表明应该使用
upvar
(可能是upvar 0
)或数组来代替它。您可能在这方面是正确的,只是习惯了在PERL中这样做有多么容易:)您可能在这方面是正确的,只是习惯了在PERL中这么做有多么容易:)找到了一个不使用strict的人代码>就像perl中应该的那样。发现某人不使用strict代码>就像perl中的代码一样。