13.7 コピーコンストラクタ

自分が作成したクラスのユーザにコピーメソッドを提供したい。または、クラスによってコピーメソッドが提供されていないオブジェクトをコピーしたい。

  • 標準モジュールのStorableに含まれているdclone()関数を使用する。
use Storable qw(dclone);
use Carp;
sub copy {
  my $self = shift;
  croak "Can't copy class $self" unless ref $self;
  my $copy = Storable::dclone($self);
  return $copy;
}