2012-04-24 77 views
0

我在我的基類use Storable qw/nfreeze thaw/;中,但我無法在我的子類中訪問nfreeze。我稱之爲nfreeze($data)這樣的孩子班。訪問子類中的基類函數

謝謝。

回答

4

Storable::nfreezeStorable::thaw功能而不是方法 - 他們不希望特定類型或包名稱作爲其第一個參數的對象。通常,您直接調用這些子例程(nfreeze($data))而不是間接語法($obj->thaw()),因此您不應該期望它們在一組繼承方法中。

要在子類中使用這些功能,將其導入到你的孩子包

package ChildClass; 
use Storable qw/nfreeze thaw/; 

或使用完全限定子程序名調用函數:

Storable::nfreeze($data); 
BaseClass::thaw($data); 

第二次調用工作,因爲nfreeze/thaw應該已經被導入到BaseClass命名空間中。

+0

很酷,有效。謝謝。 – PMat 2012-04-24 19:47:51