Perlについての質問箱 15箱目
■ このスレッドは過去ログ倉庫に格納されています
0411デフォルトの名無しさん
05/02/07 00:17:09自己参照を含むリファレンスをweakenしても思うように動作してくれません。
use Scalar::Util qw(weaken);
my $outer;
{
my $inner = {id => 'inner'};
$inner->{self} = $inner;
$outer = $inner;
weaken $outer;
}
print Data::Dumper->Dump([$outer]);
の出力は
$VAR1 = {'self' => $VAR1, 'id' => 'inner'};
と、$innerが解放されずに自己参照が生きています。
まだ実験機能らしいしこういうものなのでしょうか?
ちなみに5行目の $inner->{self} = $inner; をコメントアウトすると
ちゃんと $innerのスコープ外で $outerはundefになります。
な、なんで??
■ このスレッドは過去ログ倉庫に格納されています