{}という名前の変数あるいはコマンドを参照します。変数やコマンドの名前をとるすべてのTclコマンドは修飾名をサポートします。ようなコマンドに修飾名を与えることができることを意味します。::で始まる完全修飾名を提供すると、どのコマンド、変数、ネームスペースを意味するのかは疑いの余地がありません。いない(即ち、相対的である)と、それを見つけるためTclは固定ルールに従います。コマンドや変数の名前は常に最初に現在のネームスペースを、次にグローバルネームスペースを探すことで解析されます。ネームスペースを探すことだけで解析されます。$traceLevel}TclはまずネームスペースDebugで、そしてグローバルネームスペースでtraceLevelを探します。コマンドprintTraceと同じ方法で探します。変数やコマンドの名前がどちらの文脈でも見つからないと、その名前は未定義です。この点を完全に明確にするために次の例を考えてみて下さい。Foo::DebugでtraceLevelを捜します。ネームスペースでそれを捜します。whichコマンドを、名前の解析に関するあらゆる問題点を解消するのに使用することができます。は::traceLevelを返します。traceLevel}は::Foo::traceLevelを返します。上で述べたように、ネームスペースは変数やコマンドの名前とは異なって探されます。ネームスペース名は常に現在のネームスペース内で解析されます。evalコマンドが新しいネームスペースの名前が::で始まっていなければ、常に子ネームスペースを現在のネームスペースに作成することを意味します。Tclはどの変数、コマンド、ネームスペースに参照できるか制限するアクセス制御を持ちません。1つの要素を解析する修飾名を与えると、その要素にアクセスできます。variableコマンドを使ってネームスペース変数に同じネームスペース内のプロシージャからアクセスできます。globalコマンドのように、このコマンドはネームスペース変数へのローカルリンクを作成します。必要ならば、変数が現在のネームスペースに作成され、初期化されます。注意すべきなのはglobalコマンドはグローバルネームスペースの変数にリンクを作成するだけです。ンドを使用する必要はありません。コマンドをインポートすることネームスペースはしばしばライブラリを表すのに使われます。BLTのようなパッケージの中におけるすべてのコマンドがBltと呼ばれるネームスペースに格納されています。これらのコマンドには次のようにアクセスします。0,0graphやtableコマンドを頻繁に使うと、接頭辞Blt::無しでそれらにアクセスすることを望むかも知れません。現在のネームスペースにそれらのコマンドをインポートすることでこれは実現できます。Blt::*これはBltネームスペースからすべての公開されたコマンドを現在のネームスペース文脈に追加します。うなコードは書けます。exportコマンドで公開されたネームスペースからコマンドだけをインポートすること行います。ドをインポートすることは大抵はよいことではありません。必要とする特定のコマンドだけをインポートした方がよいでしょう。tableコマンドだけをインポートします。これは2つの異なるパッケージから同じコマンドをインポートすることを防止します。ことを望むかも知れません。importコマンドの再発行を望むかも知れません。このような場合、-forceオプションを使うことができます。forgetコマンドでそれらを削除できます。Blt::*このコマンドは現在のネームスペースBltからインポートしたいかなるコマンドを検索します。なにかが見つかるとそれらを削除します。見つからなければ何もしません。この後、Bltコマンドは接頭辞Blt::付きでアクセスしなければなりません。""そのコマンドはそれがインポートされているネームスペースからも自動的に削除されます。コマンドを公開すること以下のようにネームスペースからコマンドを公開することができます。}}プロシージャbumpとresetは公開されます。ときに取り込まれます。Counter::*しかし、checkプロシージャは公開されていません。このためインポート操作の際に無視されます。importコマンドはそれぞれのネームスペースで公開するよう宣言されたコマンドのみをインポートします。どれであるか指定します。importコマンドが公開されていないコマンドを指定すると、そのコマンドはインポートされません。