in reply to Re: How to end a Perl script
in thread How to end a Perl script

I rarely embed an exit(), favoring die() instead.

The purpose of die is to report an error to the calling program, and the exit code is not zero. Using die when everything went right in your Perl program may trigger unexpected behaviour in your calling program. Imagine for instance using your program in a makefile. The make process would end immediately, and you would not know why.

Replies are listed 'Best First'.
Re: Re x 2: How to end a Perl script
by dws (Chancellor) on May 03, 2002 at 07:24 UTC
    Using die when everything went right in your Perl program may trigger unexpected behaviour in your calling program.

    If I exit from within a script (as opposed to falling off the end), then something went wrong, and die() is the right thing to do. Using exit() from anywhere down the call stack is kind of like using a goto. I try not to do it. Using a die() from within an eval block is different, since that's the equivalent of throwing an exception.