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  command is executed inside a Tcl proce-
       dure, it creates local variables linked to the correspond-
       ing namespace variables.  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)


KEYWORDS
       global, namespace, procedure, variable
