2010-06-03 65 views

回答

0

使用-exact標誌的包需要聲明:

package require -exact mypackage 1.1 

更新: 我不建議有不同版本的同一個包的加載此起彼伏。但是,您可以加載第一個版本,開展業務,卸載它,然後加載第二個版本並開展業務。代碼:

package require -exact mypackage 1.1 
mySquare 2 
package forget mypackage 

package require -exact mypackage 1.2 
mySquare 3 
1

每個解釋器只能加載任何特定包的單個版本;假設它們的命名空間發生衝突,因此無法一次加載同一事物的兩個版本。

但是,您可能能夠在子解釋器中加載其他版本(使用-exact選項強制較新版本)。這是更可能比那些有C成分的純腳本包的工作(依賴於操作系統的動態庫加載快樂與這些東西;有些是,有些不是。)

interp create subinterp 
subinterp eval { 
    package require -exact mypackage 1.1 
} 
subinterp eval mySquare 3 

這可能或者可能不是你想要的;口譯員是非常彼此強烈隔離,因此訪問其他事情在主翻譯進行將需要建立別名...

相關問題