bless

bless

[1] bless 結果は参照の属性のようなものであってそれを入れる変数の属性のようなものではありません。

$a = bless {}, 'A';
$b = $a;
print ref $a, "\n"; # A
print ref $b, "\n"; # A

ですから、あとから bless し直すと、 すべての変数に影響します。

$a = {};
$b = bless $a, 'B';
$c = bless $b, 'C';
print ref $a, "\n"; # C
print ref $b, "\n"; # C
print ref $c, "\n"; # C