Perl は、ガーベジコレクションの機能を備えています。 解放されるタイミングは、領域に対する参照が無くなった時です。 通常ある変数か保持している領域は、その変数からの参照がなくなれば、解放されます。 1つの変数がundef されても、他の変数による参照がされている場合には解放されません。 Perl では、循環した参照というものも作成できるため、 そのような場合には、どこからも(ユーザが利用できないという意味)参照されてはいないのに(自己参照しているので)解放されない場合があります。 そのような場合においても、プログラムの終了時には、全ての領域が開放されます。