Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 在子类中访问基类函数_Perl - Fatal编程技术网

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
命名空间中