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 newly
       created 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
       the variable 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  com-
       mand, but not to the info exists command.

       If  the  variable  command is executed inside a Tcl proce-
       dure, it creates local variables linked to the correspond-
       ing namespace variables (and therefore these variables are
       listed by info locals.)  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  vari-
       able does not exist, it is created and optionally initial-
       ized.

       A name argument cannot  reference  an  element  within  an
       array.   Instead,  name should reference the entire array,
       and the initialization value should be  left  off.   After
       the  variable has been declared, elements within the array
       can be set using ordinary set or array commands.


SEE ALSO
       global(n), namespace(n), upvar(n)


KEYWORDS
       global, namespace, procedure, variable
