オレの手元のperlでは

ループ開始
newしました。
DESTROYが呼ばれました。
ループ終端

の順番になり、undefをやめると

ループ開始
newしました。
ループ終端
DESTROYが呼ばれました。

になる。どっちにしても

ループ開始
DESTROYが呼ばれました。
newしました。
ループ終端

にはならんがなぁ。