TCL包
包用於創建代碼的可重用單位。程序包由提供特定功能的文件的集合。文件的這個集合是由包名稱標識,可以有多個版本的相同的文件。所述包可以在Tcl腳本,二進製庫的集合或兩者的組合。
包使用的命名空間的概念來避免變量名和過程名發生衝突。查看更多在我們的下一個命名空間教學。
創建包
包可以以最小的兩個文件的幫助下被創建。一個文件包含包代碼。另一個文件包含聲明包索引文件包。
創建和使用程序包步驟列表如下。
步驟1:創建代碼
對於包文件夾內創建代碼表示 HelloWorld。該文件可以使用代碼命名HelloWorld.tcl,如下所示。
# /Users/rajkumar/Desktop/helloworld/HelloWorld.tcl # Create the namespace namespace eval ::HelloWorld { # Export MyProcedure namespace export MyProcedure # My Variables set version 1.0 set MyDescription "HelloWorld" # Variable for the path of the script variable home [file join [pwd] [file dirname [info script]]] } # Definition of the procedure MyProcedure proc ::HelloWorld::MyProcedure {} { puts $HelloWorld::MyDescription } package provide HelloWorld $HelloWorld::version package require Tcl 8.0
第2步:創建包INDEX
打開tclsh。切換到HelloWorld目錄,並使用pkg_mkIndex命令創建索引文件,如下圖所示。
% cd /Users/rajkumar/Desktop/helloworld % pkg_mkIndex . *.tcl
第三步:添加目錄到AUTOPATH
使用lappend命令來添加程序包到全局列表如下所示。
% lappend auto_path "/Users/rajkumar/Desktop/helloworld"
步驟4:添加軟件包
接下來添加程序包使用程序包編程要求聲明如下所示。
% package require HelloWorld 1.0
第5步:調用過程
現在,一切都被設置,可以調用我們的程序如下圖所示。
% puts [HelloWorld::MyProcedure]
會得到下麵的結果。
HelloWorld
前兩個步驟創建軟件包。當程序包被創建,可以通過添加最後三個報表如下圖所示,使用它在任何Tcl文件。
lappend auto_path "/Users/rajkumar/Desktop/helloworld" package require HelloWorld 1.0 puts [HelloWorld::MyProcedure]
會得到下麵的結果。
HelloWorld