Thread Child Prozess beenden
(36 answers)
Opened by Eng1958 at 2013-10-25 12:14
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. |