Thread Child Prozess beenden (36 answers)
Opened by Eng1958 at 2013-10-25 12:14

topeg
 2013-10-26 22:21
#171573 #171573
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Ja man kann $SIG{TERM} Namen von Funktionen übergeben. Aber übersichtlicher ist es wenn man Funktionsrefenzen übergibt. Dann weiß perl auch schon zur Compilezeit was passieren soll, das macht die Fehleranalyse einfacher. perl kann dann schon zum Programmstart feststellen ob die Funktion existiert.

Die Möglichkeiten Funktionsnamen als String zu übergeben stammt noch aus perl2 (wenn ich micht richtig erinnere). Da gab es noch keine Referenzen. Besser man schreibt es wie es bianca anregt.

Man kann es auch so schreiben:
Code (perl): (dl )
1
2
3
4
5
6
$SIG{TERM} = sub {
        my $befehl = "kill -15 $pid";
        my $result = `$befehl`;
        print "Beenden";
        exit 0;
};

Das ist dann eine anonyme Referenz auf die Funktion. Da ist bei so kleinen Sachen noch etwas übersichtlicher, weil man direkt sieht was passieren soll.

View full thread Child Prozess beenden