1、关于程序库和软件包的说明
TCL程序库是包含了一个或多个实现一系列相关过程的TCL脚本文件的目录。TCL提供了一个标准过程库,实现了它的一些默认行为。
使用info library可以返回TCL库目录的完整路径名称,比如:
% info library
D:/Tcl/lib/tcl8.4
另外全局变量tcl_library也存放着相同的值。
% puts $tcl_library
D:/Tcl/lib/tcl8.4
当然也可以自己创建库。库的创建可以把有用的工具过程集合起来,创建可重用的库代码。依靠过程的自动加载,tcl可以在需要它们时高效地加载而不必显示地source调用它们的文件。
实现自动加载只需要以下几步:
1)库的创建,即创建指定目录的脚本文件集。这些文件通常以.tcl结尾,每个文件的内容可以是多个过程的定义,通常把相关联的过程放在一个文件中。
2)建立索引,使用auto_mkindex命令扫描所有名称与指定模式匹配的文件,建立一个索引,指定哪个过程是由哪个文件提供。
命令原型为:auto_mkindex . *.tcl,创建的文件为tclIndex。
下面是用命令生成的一个tclIndex的内容
% more tclIndex
# Tcl autoload index file, version 2.0
# This file is generated by the "auto_mkindex" command
# and sourced to set up indexing information for one or
# more commands. Typically each line is a command that
# sets an element in the auto_index array, where the
# element name is the name of a command and the value is
# a script that loads the command.
set auto_index(C85-484-basicinfo) [list source [file join $dir C85_484_basicinfo.tcl]]
set auto_index(C85-486-inband) [list source [file join $dir C85_486_inband.tcl]]
set auto_index(C85-487-bandonu) [list source [file join $dir C85_487_bindonu.tcl]]
set auto_index
TCL程序库是包含了一个或多个实现一系列相关过程的TCL脚本文件的目录。TCL提供了一个标准过程库,实现了它的一些默认行为。
使用info library可以返回TCL库目录的完整路径名称,比如:
% info library
D:/Tcl/lib/tcl8.4
另外全局变量tcl_library也存放着相同的值。
% puts $tcl_library
D:/Tcl/lib/tcl8.4
当然也可以自己创建库。库的创建可以把有用的工具过程集合起来,创建可重用的库代码。依靠过程的自动加载,tcl可以在需要它们时高效地加载而不必显示地source调用它们的文件。
实现自动加载只需要以下几步:
1)库的创建,即创建指定目录的脚本文件集。这些文件通常以.tcl结尾,每个文件的内容可以是多个过程的定义,通常把相关联的过程放在一个文件中。
2)建立索引,使用auto_mkindex命令扫描所有名称与指定模式匹配的文件,建立一个索引,指定哪个过程是由哪个文件提供。
命令原型为:auto_mkindex . *.tcl,创建的文件为tclIndex。
下面是用命令生成的一个tclIndex的内容
% more tclIndex
# Tcl autoload index file, version 2.0
# This file is generated by the "auto_mkindex" command
# and sourced to set up indexing information for one or
# more commands. Typically each line is a command that
# sets an element in the auto_index array, where the
# element name is the name of a command and the value is
# a script that loads the command.
set auto_index(C85-484-basicinfo) [list source [file join $dir C85_484_basicinfo.tcl]]
set auto_index(C85-486-inband) [list source [file join $dir C85_486_inband.tcl]]
set auto_index(C85-487-bandonu) [list source [file join $dir C85_487_bindonu.tcl]]
set auto_index