in reply to Death can be such a Tragedy

You should check for errors everywhere something could potentially go wrong. Most of us assume certain operations (e.g. print to STDOUT) will always succeed, which is a pretty good bet, so you don't check on every single print (but you should check on print's to files or pipes, where failure is more likely).

If your program can recover and continue operations, use warn to let the user know that something didn't happen as expected. If there is no way the program can continue, use die.

Just be careful to properly check for errors and not use or die/warn blindly. The example that comes to mind is system, which returns the status as returned by the command executed, so that zero means "no error" and non-zero values indicate error conditions (i.e., the opposite of the usual indication in Perl).

--ZZamboni