summaryrefslogtreecommitdiffstats
path: root/doc/global.n
diff options
context:
space:
mode:
Diffstat (limited to 'doc/global.n')
-rw-r--r--doc/global.n55
1 files changed, 39 insertions, 16 deletions
diff --git a/doc/global.n b/doc/global.n
index 252cbfb..aa8f2e4 100644
--- a/doc/global.n
+++ b/doc/global.n
@@ -5,31 +5,54 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
-'\" RCS: @(#) $Id: global.n,v 1.2 1998/09/14 18:39:53 stanton Exp $
-'\"
-.so man.macros
.TH global n "" Tcl "Tcl Built-In Commands"
+.so man.macros
.BS
'\" Note: do not modify the .SH NAME line immediately below!
.SH NAME
global \- Access global variables
.SH SYNOPSIS
-\fBglobal \fIvarname \fR?\fIvarname ...\fR?
+\fBglobal \fR?\fIvarname ...\fR?
.BE
-
.SH DESCRIPTION
.PP
-This command is ignored unless a Tcl procedure is being interpreted.
-If so then it declares the given \fIvarname\fR's to be global variables
-rather than local ones.
-Global variables are variables in the global namespace.
-For the duration of the current procedure
-(and only while executing in the current procedure),
-any reference to any of the \fIvarname\fRs
-will refer to the global variable by the same name.
-
+This command has no effect unless executed in the context of a proc body.
+If the \fBglobal\fR 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 \fBupvar\fR, are not included
+in the list returned by \fBinfo locals\fR).
+.PP
+If \fIvarname\fR contains namespace qualifiers, the local variable's name is
+the unqualified name of the global variable, as determined by the
+\fBnamespace tail\fR command.
+.PP
+\fIvarname\fR 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 \fBa(b)\fR.
+.SH EXAMPLES
+.PP
+This procedure sets the namespace variable \fI::a::x\fR
+.PP
+.CS
+proc reset {} {
+ \fBglobal\fR a::x
+ set x 0
+}
+.CE
+.PP
+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 \fBputs\fR) but
+send that full message in a single piece (e.g. over a connection
+opened with \fBsocket\fR or as part of a counted HTTP response).
+.PP
+.CS
+proc accum {string} {
+ \fBglobal\fR accumulator
+ append accumulator $string \en
+}
+.CE
.SH "SEE ALSO"
-namespace(n), variable(n)
-
+namespace(n), upvar(n), variable(n)
.SH KEYWORDS
global, namespace, procedure, variable