home *** CD-ROM | disk | FTP | other *** search
- uplevel level command command ...
- All of the command arguments are concatenated as if
- they had been passed to concat and the result is
- evaluated in the variable context indicated by level.
- Uplevel returns the result of that evaluation. If
- level is zero, then top-level context is used (all
- variable names refer to global variables). If level is
- a positive number, then it is treated as a stack level:
- 1 refers to the topmost active procedure, 2 to the
- procedure it called, and so on. If level is a negative
- number, then it is treated as a level relative to the
- current procedure. For example, a level of -1 refers
- to the procedure that called the one invoking the
- uplevel command (which is top-level if the procedure
- invoking uplevel is at level 1). The uplevel command
- causes the invoking procedure to disappear from the
- procedure calling stack while the command is being
- executed. For example, suppose procedure x is at level
- 3 and invokes the command
-
- uplevel -1 {set a 43; c}
-
- where c is another Tcl procedure. The set command will
- modify variable a in x's caller, and c will execute at
- level 3, as if called from x's caller. If it in turn
- executes the command
-
- uplevel -1 {set a 42}
-
- then the set command will modify the same variable a in
- x's caller: the procedure x does not appear to be on
- the call stack when c is executing. The command ``info
- level'' may be used to obtain the level of the current
- procedure. Uplevel makes it possible to implement new
- control constructs as Tcl procedures (for example,
- uplevel could be used to implement the while construct
- as a Tcl procedure).
-
-