まくまくPerlノート
リファレンス先のデータの生存期間
2008-05-17

Perl は内部にリファレンスカウンタを管理しており、すべてのリファレンスが無効になる(スコープから外れる)までは、リファレンス先のデータはメモリ上に残ったままです。 リファレンスだけが残っていて、リファレンス先のデータが解放されてしまっているという状態にはならないので、(このようなミスをしやすい C 言語に比べて)安全です。

リファレンスを明示的に削除(リファレンスカウンタをひとつ減らす)には、次のようにリファレンス変数に undef を代入します。

$reference_to_something = undef;
2008-05-17