Provided by: manpages-zh_1.5.1-1_all bug

NAME

       uplevel - 在一茪ㄕP的棧楨中執行一蚑Z本

` SYNOPSIS
       uplevel ?level? arg ?arg ...?
_________________________________________________________________

yz DESCRIPTION
       串聯所有    arg   參數如同把它抾撐   concat   一樣;接著在用   level
       指示出的變量上下文中對結果進行求CUplevel 返回這次求熊痕G。

       如果              level               是一蚞蒱h它給出執行這茤R令之前-
       n移動的距離(在過程調用棧上)。如果level# 和隨後的一蚍r組成,則這-
       蚍r給出一茧晶麊獐h次數。如果省略了  level   則它預設為   1。如果第一
       command 參數以一蚍r或 # 則不能預設 Level。

       例如,假設從頂層調用過程  a,而它調用  b,接著b  調用  c。假設 c 調用了
       uplevel  命令。如果  level1#2   或被省略了,則命令將在   b
       的變量上下文中在執行。如果    level2#1   則命令將在   a
       的變量上下文中執行。如果       level3#0
       則命令將在頂層執行(只有全局變量是可見的)。

       uplevel     命令導P調用它的過程在命令執行的時埜q過程調用棧中消失。在上-
       悸漕狺l中,假設 c 調用了命令
              uplevel 1 {set x 43; d}
       這裏的 d 是另一 Tcl 過程。set 命令將蚹鵀b b 的上下文中的變量 x ,而  d
       將在層次 3 上執行,如同從 b 調用它一樣。如果 d 接著執行命令
              uplevel {set x 42}set  命令將蚹鵀b  b  的上下文中的同一蚥僆q  x: 在 d 執行的時埳L程 c
       在調用棧上不出現。可以使用命令「info level」來獲得當前過程的層次。

       Uplevel 使實現如同 Tcl 過程的新控制結構成為可能(例如,可以使用  uplevelwhile 構造實現為一 Tcl 過程)。

       namespace                 eval                是改變                Tcl
       命令上下文的另一種方式(除了過程調用之外)。它向棧增加一-
       蚑掍庢岳茠磳雃W字空間上下文。這意味著每  namespace  eval  命令被視為給
       uplevelupvar 命令的另一蚑掍弮h次。例如,info level  1  將返回描z一-
       茤R令的列表,它n麼是最外的過程n麼是最外的         namespace        eval
       命令。還有,uplevel  #0   在最外悸漲W字空間(全局名字空間)中的頂層求@-
       蚑Z本。

 SEE ALSO
       namespace(n), upvar(n)

r KEYWORDS
       context, level, namespace, stack frame, variables

[]
      Hhh

[]
       2001/11/21

m Linux manUpn:
       http://cmpp.linuxforum.net