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 | 
