0

基本クラスにはありますが、子クラスにuse Storable qw/nfreeze thaw/;はアクセスできません。nfreezeのような子クラスで呼び出していnfreeze($data)ます。

ありがとう。

4

1 に答える 1

4

Storable::nfreezeおよびStorable::thawメソッドではなく関数です。特定の型のオブジェクトやパッケージ名を最初の引数として想定していません。一般に、これらのサブルーチンは、間接的な構文 ( ) ではなく直接 ( ) 呼び出すため、継承されたメソッドのセットにあるとは考えないでください。nfreeze($data)$obj->thaw()

これらの関数を子クラスで使用するには、それらを子パッケージにインポートします

package ChildClass;
use Storable qw/nfreeze thaw/;

または、完全修飾サブルーチン名で関数を呼び出します。

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

nfreeze/thawはすでにBaseClass名前空間にインポートされているため、2 番目の呼び出しは機能します。

于 2012-04-24T19:27:02.553 に答える