die - raise an exception or bail out


die LIST


Outside of an eval() , prints the value of LIST to STDERR and exits with the current value of $! (errno). If $! is 0, exits with the value of ($? >> 8) (backtick `command` status). If ($? >> 8) is 0, exits with 255. Inside an eval() , the error message is stuffed into $@ , and the eval() is terminated with the undefined value; this makes die() the way to raise an exception.

Equivalent examples:

die "Can't cd to spool: $!\n" unless chdir '/usr/spool/news'; chdir '/usr/spool/news' or die "Can't cd to spool: $!\n"

If the value of EXPR does not end in a newline, the current script line number and input line number (if any) are also printed, and a newline is supplied. Hint: sometimes appending ``, stopped'' to your message will cause it to make better sense when the string ``at foo line 123'' is appended. Suppose you are running script ``canasta''.

die "/etc/games is no good"; die "/etc/games is no good, stopped";

produce, respectively

/etc/games is no good at canasta line 123. /etc/games is no good, stopped at canasta line 123.

See also exit() and warn() .