variable(n) Tcl Built-In Commands variable(n)
_________________________________________________________________________________________________
NAME
variable - create and initialize a namespace variable
SYNOPSIS
variable ?name value...? name ?value?
_________________________________________________________________
DESCRIPTION
This command is normally used within a namespace eval command to create one or more vari-
ables 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 newly created variable. If no value is specified, the new variable 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 the variable is created in the current names-
pace. 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 com-
mand, 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 command only links to variables in the global namespace. If any values are
given, they are used to modify the values of the associated 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 refer-
ence the entire array, and the initialization value should be left off. After the vari-
able 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
}
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(n), namespace(n), upvar(n)
KEYWORDS
global, namespace, procedure, variable
Tcl 8.0 variable(n)
Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache/2.4.6 (CentOS)
Under GNU General Public License
2025-06-23 22:12 @127.0.0.1 CrawledBy Wget/1.21.2