2013-10-22 18 views
0

根據tcl.tk什麼是/ was auto_oldpath?

auto_oldpath是設置在 auto_load_index PROC期間設置一個全局Tcl變量。

and

auto_path的是一個神奇的名字是Tcl的認識之一。它在 中描述的Tcl手冊頁,「庫」。它是一個全局變量,其中包含Tcl在嘗試使用package命令解析 程序包或使用 auto_load解析命令時使用的目錄列表 。包和auto_load命令以不同的方式使用auto_path,其格式爲 。 auto_load搜索名爲tclIndex的文件,查找 的auto_path目錄。這些是「Tcl自動加載索引文件」,並且 被格式化爲兩個版本;版本2.0包含命令用於設置 auto_index中(::命名空間::執行)$ CMD其中cmd 源定義命令::命名空間::函數名

這是我的文件$通常爲:

% puts $auto_path 
/usr/share/tcltk/tcl8.5 /usr/lib /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk /usr/share/tcltk /usr/share/tcltk/tk8.5/ttk 

但:

% puts $auto_oldpath 
can't read "auto_oldpath": no such variable 

回答

1

這個變量被轉移到::tcl命名空間。
構建auto_index時,此變量設置爲::auto_path變量的值。
如果::tcl::auto_oldpath的內容等於::auto_path變量的內容,它將不會嘗試再次加載auto_index。

引述的init.tcl

proc auto_load_index {} { 
    variable ::tcl::auto_oldpath 
    global auto_index auto_path 

    if {[info exists auto_oldpath] && ($auto_oldpath eq $auto_path)} { 
     return 0 
    } 
    set auto_oldpath $auto_path 
    # .... 
} 
+2

需要明確的是,該變量被認爲是全Tcl的實現的一部分相關的部分,它不應該被任何用戶或擴展包代碼訪問。也不保證在任何特定時間存在。 –