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

bianca
 2016-08-27 09:02
#185303 #185303
User since
2009-09-13
7016 Artikel
BenutzerIn

user image
Guten Morgen!

Ich möchte gern in einem Script mit Strawberry Perl >= 5.18.4 auf Windows 64 Bit temporär das exit() abfangen.
Folgendes habe ich probiert:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl
use strict;
use warnings;
use 5.010;

# wie kann man zeitweise exit() umleiten?
my $sub_code = 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
$sub_code->();
say "jetzt soll exit() wiederhergestellt werden";
*CORE::GLOBAL::exit = *CORE::exit;  # Quelle: http://stackoverflow.com/a/25376064
exit();
say "dieser Text darf nicht mehr zu sehen sein";

Ausgegeben wird:
Quote
jetzt soll exit() abgefangen werden 11
bin im sub_code 8

Ich erwarte aber:
Quote
jetzt soll exit() abgefangen werden 11
bin im sub_code 8
exit() sub 12
jetzt soll exit() wiederhergestellt werden 14
bin im sub_code 8

Wieso klappt das nicht wie erwartet, was mache ich falsch?
Danke!
10 print "Hallo"
20 goto 10

View full thread exit() abfangen