Thread exit() abfangen
(12 answers)
Opened by bianca at 2016-08-27 09:02 Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #!/usr/bin/perl use strict; use warnings; use 5.010; # wie kann man zeitweise exit() umleiten? my $sub_code = q( sub { say "bin im sub_code"; exit(); }; ); say "jetzt soll exit() abgefangen werden"; *CORE::GLOBAL::exit = sub { say "exit() sub"; }; # Quelle: http://stackoverflow.com/a/25376064 eval "&{$sub_code}();"; say "jetzt soll exit() wiederhergestellt werden"; *CORE::GLOBAL::exit = *CORE::exit; # Quelle: http://stackoverflow.com/a/25376064 eval "&{$sub_code}();"; say "dieser Text darf nicht mehr zu sehen sein"; Erzeugt: jetzt soll exit() abgefangen werden bin im sub_code exit() sub jetzt soll exit() wiederhergestellt werden bin im sub_code Aber ich nehme an, anstatt der Referenz auf die sub den Code selbst mit eval zu starten ist auch keine Lösung in deinem Fall. Ich finde den Code als String und das zu verwendende eval grässlich, weiß aber keine andere Lösung. Last edited: 2016-08-28 13:53:18 +0200 (CEST) |