13.6 クローンを作成するコンストラクタ

既存のオブジェクト上で呼び出されるコンストラクタメソッドを作成する必要がある。ただし、このコンストラクタメソッドが呼び出された場合には、新しいオブジェクトを初期化するためのデフォルト値として、元のオブジェクトの値を使用しなければならない。

コンストラクタの先頭に次のようなコードを書く。

my $proto = shift;
my $class = ref($proto) || $proto;
my $parent = ref($proto) && $proto;