Wow, I opened up a whole can of worms there. What I was trying to point out was simply this - sometimes, it doesn't matter WHY something went wrong, just to die gracefully with some informative message e.g. File Not Found.
in reply to Re^3: eval to replace die?
in thread eval to replace die?
In the case of a simple script that is trying to parse a file that it can't access (permissions, missing file etc), there is nothing to recover from - give the user some clue as to what went wrong, and terminate.
Obviously, there are situations where the script/application/program shouldn't exit - trap the error, display the error message, log it and continue.
The use of eval, catching exceptions, trapping signals etc is the choice of the programmer - TMTOWTDI.
And yes, that might mean some fuzzy string comparisons.... :)