Perl 在子类中访问基类函数
我在我的基类Perl 在子类中访问基类函数,perl,Perl,我在我的基类中使用了可存储的qw/nfreeze-thaw/但我无法在我的子类中访问nfreeze。我在子类中调用它,比如nfreeze($data) 谢谢。可存储::nfreeze和可存储::解冻是函数而不是方法--它们不希望特定类型的对象或包名作为第一个参数。通常,您直接调用这些子例程(nfreeze($data)),而不是使用间接语法($obj->saw()),因此您不应该期望它们位于继承方法集中 要在子类中使用这些函数,请将它们导入子包 package ChildClass; use S
中使用了可存储的qw/nfreeze-thaw/
但我无法在我的子类中访问nfreeze
。我在子类中调用它,比如nfreeze($data)
谢谢。
可存储::nfreeze
和可存储::解冻
是函数而不是方法--它们不希望特定类型的对象或包名作为第一个参数。通常,您直接调用这些子例程(nfreeze($data)
),而不是使用间接语法($obj->saw()
),因此您不应该期望它们位于继承方法集中
要在子类中使用这些函数,请将它们导入子包
package ChildClass;
use Storable qw/nfreeze thaw/;
或使用其完全限定的子例程名称调用函数:
Storable::nfreeze($data);
BaseClass::thaw($data);
第二个调用之所以有效,是因为
nfreeze
/saw
本应已导入BaseClass
命名空间。可存储::nfreeze
和可存储::saw
是函数而不是方法,它们不希望特定类型的对象或包名作为第一个参数。通常,您直接调用这些子例程(nfreeze($data)
),而不是使用间接语法($obj->saw()
),因此您不应该期望它们位于继承方法集中
要在子类中使用这些函数,请将它们导入子包
package ChildClass;
use Storable qw/nfreeze thaw/;
或使用其完全限定的子例程名称调用函数:
Storable::nfreeze($data);
BaseClass::thaw($data);
第二个调用之所以有效,是因为nfreeze
/saw
已经导入到BaseClass
命名空间中