Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在proc(Tcl)中使用内置变量_Tcl - Fatal编程技术网

如何在proc(Tcl)中使用内置变量

如何在proc(Tcl)中使用内置变量,tcl,Tcl,TCL有一些内置的命令 例如$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(NUMB

TCL有一些内置的命令

例如
$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
的范围内有效?

您必须将
env
数组放入您的
pc
程序的范围内:

proc pc {} {
  global env
  return $env(NUMBER_OF_PROCESSORS)
}
或者,使用env的完整命名空间路径:

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