访问子类中的基类函数

时间:2012-04-24 18:53:02

标签: perl

我在我的基类use Storable qw/nfreeze thaw/;中,但我无法在我的子课程中访问nfreeze。我在像nfreeze($data)这样的子类中调用它。

感谢。

1 个答案:

答案 0 :(得分:4)

Storable::nfreezeStorable::thaw函数而非方法 - 他们不希望特定类型的对象或包名称为他们的第一个论点通常,您直接调用这些子例程(nfreeze($data))而不是间接语法($obj->thaw()),因此您不应期望它们位于继承方法集中。

要在子类中使用这些函数,请将它们导入子包

package ChildClass;
use Storable qw/nfreeze thaw/;

或使用其完全限定的子程序名称调用函数:

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

第二次调用有效,因为nfreeze / thaw已经导入BaseClass命名空间。