#! /usr/bin/perl use strict; use warnings; sub selfkill { # Zufall bestimmen; mal stirbt das Skript, mal nicht int(rand(2)) == int(rand(2)) ? die "Nu ist Schluss...\n" : return 0; } # Sollte selfkill ein die() ausrufen, wird das vom eval # aufgefangen; und das Ergebnis sollte direkt kontrolliert werden # die 1 ist wichtig; sollte selfkill nicht sterben, dann liefert # der Code-Block dank der 1 ein wahres Ergebnis und das # "or warn..." wird nicht ausgeführt eval { selfkill(); 1; } or warn "selfkill() hat zugeschlagen: $@\n"; # Ausgaben, um zu zeigen, dass wir noch leben print "ich lebe noch....\n"; print "bis jetzt...\n"; # "normaler" Aufruf, der uns beendet selfkill();