Perl は内部にリファレンスカウンタを管理しており、すべてのリファレンスが無効になる(スコープから外れる)までは、リファレンス先のデータはメモリ上に残ったままです。 リファレンスだけが残っていて、リファレンス先のデータが解放されてしまっているという状態にはならないので、(このようなミスをしやすい C 言語に比べて)安全です。
リファレンスを明示的に削除(リファレンスカウンタをひとつ減らす)には、次のようにリファレンス変数に undef
を代入します。
$reference_to_something = undef;