NAME
       set - Read and write variables

SYNOPSIS
       set varName ?value?


DESCRIPTION
       Returns the value of variable varName.  If value is specified, then set
       the value of varName to value, creating a new variable if  one  doesn't
       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 vari-
       able.  Normally, varName is unqualified (does not include the names  of
       any  containing  namespaces), and the variable of that name in the cur-
       rent namespace is read or written.  If varName includes namespace qual-
       ifiers  (in the array name if it refers to an array element), the vari-
       able in the specified namespace is read or written.

       If no procedure is active, then varName refers to a namespace  variable
       (global variable if the current namespace is the global namespace).  If
       a procedure is active, then varName refers  to  a  parameter  or  local
       variable  of  the  procedure  unless  the global command was invoked to
       declare varName to be global, or unless a variable command was  invoked
       to declare varName to be a namespace variable.


SEE ALSO
       expr(n), proc(n), trace(n), unset(n)


KEYWORDS
