Thread exit() abfangen (12 answers)
Opened by bianca at 2016-08-27 09:02

GwenDragon
 2016-08-28 13:50
#185310 #185310
User since
2005-01-17
14787 Artikel
Admin1
[Homepage]
user image
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)

View full thread exit() abfangen