I know you can catch the results of die as follows:
eval { ... some code doing somethin ... die "Couldn't do something!\n"; } if ($@) { print "I caught a call to die: $@"; }
This is very usefull. However, I came across a situation where I would like a script to do some initialization on startup and cleanup on shutdown. This can be accomplished using BEGIN { } and END{ }. However, how do you handle situations where you still want to do your cleanup on the main script exiting due to a die. The End block will run on die, but how do you know why?? You would think the following would work, but it doesnt.
#!/usr/bin/perl -Tw use strict; die "Let's Try to die."; END { print "End block is being executed.\n"; if ($@){ print "We caught a call to die: $@\n"; } }
So what do the monks think?
Thanks!
zzspectrez
In reply to BEGIN, END, eval and die. by zzspectrez
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |