G'day morgon,
END blocks are the last thing to be run. They are run in reverse order.
From "perlmod: BEGIN, UNITCHECK, CHECK, INIT and END:
"An END code block is executed as late as possible, that is, after perl has finished running the program and just before the interpreter is being exited, even if it is exiting as a result of a die() function. ... You may have multiple END blocks within a file--they will execute in reverse order of definition; ..."
Would writing your code like the following, achieve what you want?
#!/usr/bin/env perl use strict; use warnings; END { # "the very last thing a script does" } END { # Call destructors and other cleanup here } # ... rest of script here ...
If not, can you supply example code showing whatever problem you're experiencing. It may be that you need to trap signals or reorganise your code in some way: but I'm very much groping around in guesswork-land here.
— Ken
In reply to Re: is there a way to ensure some code is the last thing that is run?
by kcott
in thread is there a way to ensure some code is the last thing that is run?
by morgon
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |