2012-04-24 71 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