in reply to Destructor Order

If the main cause of uncontrolled termination is interuption via sigint, then installing a signal handler $SIG{INT} = sub{ #Stop now }};and perfroming your clean up there may be in order.

END{} blocks aren't run when programs are interupted by sigint(2) (under win32 at least).


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail