Perlについての質問箱 24箱目
■ このスレッドは過去ログ倉庫に格納されています
0660デフォルトの名無しさん
2006/05/24(水) 15:14:41sub reff {
my @a = qw(a b c);
my @b = \@a;
}
my @list = reff()
print @{ $list[0] };;
このコードではサブルーチンreffの最後の行
my @b = \@a
の評価結果(つまり@b)が返されて@listに格納されるので
サブルーチン内でmy宣言された@aのリファレンスは
スコープを出ても生きています。
もしも上のコードを
sub reff {
my @a = qw(a b c);
my @b = \@a;
}
reff();
としてしまったら、@aのリファレンスはどうなりますか?
メモリリークになるのでしょうか?
それともreff()が無効コンテキストだから破棄される?
■ このスレッドは過去ログ倉庫に格納されています