diff options
Diffstat (limited to 'doc/variable.n')
-rw-r--r-- | doc/variable.n | 55 |
1 files changed, 46 insertions, 9 deletions
diff --git a/doc/variable.n b/doc/variable.n index 3b742a9..7d58a02 100644 --- a/doc/variable.n +++ b/doc/variable.n @@ -5,18 +5,17 @@ '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" -'\" RCS: @(#) $Id: variable.n,v 1.2 1998/09/14 18:39:56 stanton Exp $ -'\" -.so man.macros .TH variable n 8.0 Tcl "Tcl Built-In Commands" +.so man.macros .BS '\" Note: do not modify the .SH NAME line immediately below! .SH NAME variable \- create and initialize a namespace variable .SH SYNOPSIS -\fBvariable \fR?\fIname value...\fR? \fIname \fR?\fIvalue\fR? +\fBvariable \fR\fIname\fR +.sp +\fBvariable \fR?\fIname value...\fR? .BE - .SH DESCRIPTION .PP This command is normally used within a @@ -36,11 +35,14 @@ Normally, \fIname\fR is unqualified (does not include the names of any containing namespaces), and the variable is created in the current namespace. If \fIname\fR includes any namespace qualifiers, -the variable is created in the specified namespace. +the variable is created in the specified namespace. If the variable +is not defined, it will be visible to the \fBnamespace which\fR +command, but not to the \fBinfo exists\fR command. .PP If the \fBvariable\fR command is executed inside a Tcl procedure, it creates local variables -linked to the corresponding namespace variables. +linked to the corresponding namespace variables (and therefore these +variables are listed by \fBinfo vars\fR.) In this way the \fBvariable\fR command resembles the \fBglobal\fR command, although the \fBglobal\fR command only links to variables in the global namespace. @@ -55,9 +57,44 @@ and the initialization \fIvalue\fR should be left off. After the variable has been declared, elements within the array can be set using ordinary \fBset\fR or \fBarray\fR commands. +.SH EXAMPLES +.PP +Create a variable in a namespace: +.PP +.CS +namespace eval foo { + \fBvariable\fR bar 12345 +} +.CE +.PP +Create an array in a namespace: +.PP +.CS +namespace eval someNS { + \fBvariable\fR someAry + array set someAry { + someName someValue + otherName otherValue + } +} +.CE +.PP +Access variables in namespaces from a procedure: +.PP +.CS +namespace eval foo { + proc spong {} { + # Variable in this namespace + \fBvariable\fR bar + puts "bar is $bar" + # Variable in another namespace + \fBvariable\fR ::someNS::someAry + parray someAry + } +} +.CE .SH "SEE ALSO" -global(n), namespace(n) - +global(n), namespace(n), upvar(n) .SH KEYWORDS global, namespace, procedure, variable |