首页 > 解决方案 > 如何在 proc (Tcl) 中使用内置变量

问题描述

TCL 有一些内置命令。

例如$env(some_env_var),我将采用一些环境变量。

我用$env(some_env_var)proc

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

标签: tcl

解决方案


您必须将env数组带入您的pcproc 范围内:

proc pc {} {
  global env
  return $env(NUMBER_OF_PROCESSORS)
}

或者,使用 env 的完整命名空间路径:

proc pc {} {
  return $::env(NUMBER_OF_PROCESSORS)
}

推荐阅读