I don't have time currently to deeply troubleshoot (especially why END isn't working for you), but one sure-fire way to ensure DESTROY is called is wrap it with a dummy package, and then generate an unused object in your code. DESTROY is called when an object goes out of scope (in our case, the program finishes). This is quick and dirty, but it does do what I think you're after. Better would be to possibly rewrite the whole shebang to be Object Oriented.

use strict; use warnings; use FindBin; use File::Spec; my $log_fn = File::Spec->catfile($FindBin::Bin, "cleanup_handler_log.t +xt"); open my $LOG, '>>', $log_fn or die "Failed to open log '$log_fn' for a +ppending ($!)\n"; binmode $LOG; $LOG->autoflush(1); # disable buffering package Blah;{ sub new { return bless {}, shift; } sub DESTROY { print $LOG "DESTROY() called. Cleaning up...\r\n"; } } my $obj = Blah->new; my $sleep_time = 1; # 1d print "Sleeping $sleep_time seconds ...\n"; sleep $sleep_time; print "Print finishing normally (sleep $sleep_time completed)\n";

In reply to Re: Window Close / Process Termination Handler on Windows by stevieb
in thread Window Close / Process Termination Handler on Windows by rminner

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.