global(n) Tcl Built-In Commands global(n)

```

```

# [NAME](#NAME)

global - Access global variables

# [SYNOPSIS](#SYNOPSIS)

**global** ?*varName ...*?

```

```

# [DESCRIPTION](#DESCRIPTION)

This command has no effect unless executed in the context of a proc body. If the **global** command is executed in the context of a proc body, it creates local variables linked to the corresponding global variables (though these linked variables, like those created by **upvar**, are not included in the list returned by **info locals**).

If *varName* contains namespace qualifiers, the local variable's name is the unqualified name of the global variable, as determined by the **namespace tail** command.

*varName* is always treated as the name of a variable, not an array element. An error is returned if the name looks like an array element, such as **a(b)**.

# [EXAMPLES](#EXAMPLES)

This procedure sets the namespace variable *::a::x*

```
proc reset {} {


    global a::x


    set x 0
}
```

This procedure accumulates the strings passed to it in a global buffer, separated by newlines. It is useful for situations when you want to build a message piece-by-piece (as if with **puts**) but send that full message in a single piece (e.g. over a connection opened with **socket** or as part of a counted HTTP response).

```
proc accum {string} {


    global accumulator


    append accumulator $string \n
}
```

# [SEE ALSO](#SEE_ALSO)

[namespace(n)](/man/os/tcl/namespace.n), [upvar(n)](/man/os/tcl/upvar.n), [variable(n)](/man/os/tcl/variable.n)

# [KEYWORDS](#KEYWORDS)

global, namespace, procedure, variable

Tcl

---

Document: global(n) from tcl 9.1.0-r1 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/tcl/Tcl/9.1.0/tcl9.1.0-src.tar.gz
