tcl: create your own lib; namespace, package
- Must have
- directory ./dir, to put all tcl files of your lib
- pkgIndex.tcl
- tcl files
- directory ./dir, to put all tcl files of your lib
- add ${fullpath of $dir} into tcl lib path
####
- pkgIndex.tcl
- To create pkgIndex.tcl automatically
% tclsh > pkg_mkIndex . *.tcl
-
- pkgIndex.txl contents
package ifneeded file1_space 1 [list source [file join $dir file1.tcl]] package ifneeded file2_space 1 [list source [file join $dir file2.tcl]]
-
- add ${fullpath of $dir} into tcl lib path
csh % setenv TCLLIBPATH /<fullpath>/$dir % tclsh > lappend auto_path /<fullpath>/$dir
####
- tcl files
- file1.tcl
package provide file1_space 1
namespace eval file1_space {
}
- file2.tcl
- to require file1_space into file2
package require file1_space
package provide file2_space 1
namespace eval file2_space {
}
####
- namespace usage
- decare variables
- variable
- set
- try to get a variable which is not in current namespace
- add :: before the variable: $::v4
- which will get the variable $v4 under root namespace
- get current namespace
- [namespace current]
- decare variables

浙公网安备 33010602011771号