Tcl Built-In Commands variable(1T)
_________________________________________________________________
NAME
variable - create and initialize a namespace variable
SYNOPSIS
variable ?name value...? name ?value?
_________________________________________________________________
DESCRIPTION
This command is normally used within a namespace eval com-
mand to create one or more variables within a namespace.
Each variable name is initialized with value. The value for
the last variable is optional.
If a variable name does not exist, it is created. In this
case, if value is specified, it is assigned to the newlycreated variable. If no value is specified, the new vari-
able is left undefined. If the variable already exists, it
is set to value if value is specified or left unchanged if no value is given. Normally, name is unqualified (does not include the names of any containing namespaces), and thevariable is created in the current namespace. If name
includes any namespace qualifiers, the variable is created
in the specified namespace. If the variable is not defined,
it will be visible to the namespace which command, but not to the info exists command.If the variable command is executed inside a Tcl procedure,
it creates local variables linked to the corresponding
namespace variables (and therefore these variables are
listed by info vars.) In this way the variable command
resembles the global command, although the global commandonly links to variables in the global namespace. If any
values are given, they are used to modify the values of theassociated namespace variables. If a namespace variable
does not exist, it is created and optionally initialized. A name argument cannot reference an element within an array. Instead, name should reference the entire array, and theinitialization value should be left off. After the variable
has been declared, elements within the array can be set using ordinary set or array commands.EXAMPLES
Create a variable in a namespace:
namespace eval foo {variable bar 12345
} Tcl Last change: 8.0 1Tcl Built-In Commands variable(1T)
Create an array in a namespace: namespace eval someNS {variable someAry
array set someAry { someName someValue otherName otherValue } }Access variables in namespaces from a procedure:
namespace eval foo { proc spong {} {# Variable in this namespace
variable bar
puts "bar is $bar"
# Variable in another namespace
variable ::someNS::someAry
parray someAry } }SEE ALSO
global(1T), namespace(1T), upvar(1T) KEYWORDSglobal, namespace, procedure, variable
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:_______________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE|
|____________________|__________________|_
| Availability | runtime/tcl-8 |
|____________________|__________________|_
| Interface Stability| Uncommitted ||____________________|_________________|
NOTES Source for Tcl is available on http://opensolaris.org. Tcl Last change: 8.0 2