如何在 proc (Tcl) 中使用内置变量
How to use built-in variable in proc (Tcl)
TCL 有一些内置命令。
例如$env(some_env_var)
,我取一些环境变量。
我在proc
中使用$env(some_env_var)
proc pc {} {
return $env(NUMBER_OF_PROCESSORS)
}
puts [pc]
然后我得到错误:
$ tclsh ./t.tcl
can't read "env(NUMBER_OF_PROCESSORS)": no such variable
while executing
"return $env(NUMBER_OF_PROCESSORS)"
(procedure "pc" line 2)
invoked from within
"pc"
invoked from within
"puts [pc]"
(file "./t.tcl" line 5)
$env
似乎在 proc
、
的范围内无效
如何修改$env
使其在proc
范围内有效?
您必须将 env
数组放入 pc
过程的范围内:
proc pc {} {
global env
return $env(NUMBER_OF_PROCESSORS)
}
或者,使用 env 的完整命名空间路径:
proc pc {} {
return $::env(NUMBER_OF_PROCESSORS)
}
TCL 有一些内置命令。
例如$env(some_env_var)
,我取一些环境变量。
我在proc
$env(some_env_var)
proc pc {} {
return $env(NUMBER_OF_PROCESSORS)
}
puts [pc]
然后我得到错误:
$ tclsh ./t.tcl
can't read "env(NUMBER_OF_PROCESSORS)": no such variable
while executing
"return $env(NUMBER_OF_PROCESSORS)"
(procedure "pc" line 2)
invoked from within
"pc"
invoked from within
"puts [pc]"
(file "./t.tcl" line 5)
$env
似乎在 proc
、
如何修改$env
使其在proc
范围内有效?
您必须将 env
数组放入 pc
过程的范围内:
proc pc {} {
global env
return $env(NUMBER_OF_PROCESSORS)
}
或者,使用 env 的完整命名空间路径:
proc pc {} {
return $::env(NUMBER_OF_PROCESSORS)
}