in reply to DESTROY Function call
No. The DESTROY function will be called immediately after the last reference to the object goes out of scope.
This is fairly similar to what C++ seemingly does, but only in the case where no references escape that scope.
See Scope::Guard, Guard and similar classes that use this mechanism to ensure cleanup of resources when a scope is left.
Update: Also, the "SEE ALSO" section of Scope::Guard mentions many other modules that implement the same approach.
In Section
Seekers of Perl Wisdom