PerlのScalar::Util にある weaken について学んでいたところ、誤解していた点があったので覚え書き。 以下のように、同じリファレンス値を持つ変数を2つ作り、片方だけを weaken することを考えます。 use strict; use warnings; use feature qw(say); use Scalar::Util qw(weaken isweak); my ($a, $b); $a = $b = {}; weaken $a; say "\$a = $a is ", isweak $a ? 'weak' : 'strong'; say "\$b = $b is ", isweak $b ? 'weak' : 'strong'; 自分は、$aも$bもリファレンスとしては同じ値なのだから、$aをweakenすれば$bも弱くなる、という風に思っていたのですが、結