2014-01-17 65 views
0

是否可以在另一個位置導入與包名相同名稱的基類?Perl:繼承 - 基類和子類

package Foo; 
use base 'Foo'; 

我必須使用'Foo'作爲位於另一個位置的基類。可能嗎 ?

+0

您可以重新打開它外面的包並添加到它(不需要繼承)。 –

+0

包名在Perl解釋器中是全局唯一的。你不能有兩個不同的同名軟件包。聲明一個已經存在的'package'只需重新輸入那個現有的上下文。 – amon

回答

3

不,你不能那樣做。基類是Perl查找當前包中未定義的方法的地方。

如果你寫這樣的東西,而Perl找不到Foo::method那麼它會看基類Foo::method,所以搜索將是無止境的。