在procedure中载入(source)的脚本文件中定义的全局变量并不是做为全局域的变量
#+BEGIN_SRC tcl
# file1: a.tcl
proc aCmd {} {
if {someCondition} {
source b.tcl
say "world!"
}
}
aCmd
# file: b.tcl
set v "hello";
proc say {someone} {
global v
puts "$v $someone"
}
#+END_SRC
执行上述脚本时会提示:变量v不存在。
如果a.tcl先载入b.tcl脚本后再执行say函数就没有问题:
#+BEGIN_SRC tcl
# file1: a.tcl
source b.tcl
if {someCondition} {
say "World!"
}
# file2: b.tcl
set v "hello"
proc say {someone} {
global v
puts "$v $someone"
}
#+END_SRC
何解?
阅读(731) | 评论(0) | 转发(0) |