Chinaunix首页 | 论坛 | 博客
  • 博客访问: 261861
  • 博文数量: 5
  • 博客积分: 2212
  • 博客等级: 大尉
  • 技术积分: 432
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-26 16:00
个人简介

Hello, world!

文章分类

全部博文(5)

文章存档

2015年(5)

我的朋友

分类: IT业界

2015-10-15 22:46:28

在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

何解?

阅读(649) | 评论(0) | 转发(0) |
0

上一篇:TCL/TK 菜单栏创建与顶层窗口绑定分离执行

下一篇:没有了

给主人留下些什么吧!~~