我在我的基类中use Storable qw/nfreeze thaw/;
,但我无法nfreeze
在我的子类中访问。我在儿童班中称它为nfreeze($data)
.
谢谢。
Storable::nfreeze
并且Storable::thaw
是函数而不是方法——它们不期望特定类型的对象或包名称作为它们的第一个参数。通常,您直接调用这些子例程 ( nfreeze($data)
) 而不是使用间接语法 ( $obj->thaw()
),因此您不应期望它们位于继承的方法集中。
要在您的子类中使用这些函数,请将它们导入您的子包中
package ChildClass;
use Storable qw/nfreeze thaw/;
或使用其完全限定的子例程名称调用函数:
Storable::nfreeze($data);
BaseClass::thaw($data);
第二个调用有效,因为nfreeze
/thaw
已经被导入BaseClass
命名空间。