[quote=betterworld,18.03.2007, 15:44][quote=topeg,17.03.2007, 17:55]
$SIG{__DIE__}=sub{ warn "Fehler: $_[0]" };
[/quote]
Mit solchen DIE-Handlern sollte man immer sparsam umgehen, denn damit kann die Funktion von externen Modulen, die ihrerseits ein bisschen Exception-Handling machen, gestoert werden. eval{} ist da meist eine bessere Loesung.[/quote]
Zumindest sollte man im eigenen Code
local $SIG{__DIE__} = ...
schreiben.
Externe Module können sich selbst vor Problemen schützen, indem sie den __DIE__-Sighandler in evals explizit ausschalten. Das Konstrukt
eval {local $SIG{__DIE__}; ... }
findet man beispielsweise in vielen Tk-Modulen.