Carp is your friend. Personally, when writing custom modules, I use croak to indicate *what* went wrong and return 0/1 to make the calling script aware of what happens. If you insist onusing die, you'd be looking at the carp command..it also dies, but at least you know why.