set - Read and write variables
set varName ?
value?
Returns the value of variable
varName. If
value is specified, then
set the value of
varName to
value, creating a new variable if
one does not already exist, and return its value. If
varName contains
an open parenthesis and ends with a close parenthesis, then it refers to an
array element: the characters before the first open parenthesis are the name
of the array, and the characters between the parentheses are the index within
the array. Otherwise
varName refers to a scalar variable.
If
varName includes namespace qualifiers (in the array name if it refers
to an array element), or if
varName is unqualified (does not include
the names of any containing namespaces) but no procedure is active,
varName refers to a namespace variable resolved according to the rules
described under
NAME RESOLUTION in the
namespace manual page.
If a procedure is active and
varName is unqualified, then
varName
refers to a parameter or local variable of the procedure, unless
varName was declared to resolve differently through one of the
global,
variable or
upvar commands.
Store a random number in the variable
r:
Store a short message in an array element:
set anAry(msg) "Hello, World!"
Store a short message in an array element specified by a variable:
set elemName "msg"
set anAry($elemName) "Hello, World!"
Copy a value into the variable
out from a variable whose name is stored
in the
vbl (note that it is often easier to use arrays in practice
instead of doing double-dereferencing):
set in0 "small random"
set in1 "large random"
set vbl in[expr {rand() >= 0.5}]
set out [set $vbl]
expr(3tcl),
global(3tcl),
namespace(3tcl),
proc(3tcl),
trace(3tcl),
unset(3tcl),
upvar(3tcl),
variable(3tcl)
read, write, variable