基本クラスにはありますが、子クラスにuse Storable qw/nfreeze thaw/;
はアクセスできません。nfreeze
のような子クラスで呼び出していnfreeze($data)
ます。
ありがとう。
基本クラスにはありますが、子クラスに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
名前空間にインポートされているため、2 番目の呼び出しは機能します。