Thread exit() abfangen
(12 answers)
Opened by bianca at 2016-08-27 09:02
Danke dir, klappt tatsächlich sehr gut!
Aber ich hatte leider vergessen zu erwähnen, dass der Code in der sub nicht geändert werden darf. eval "exit();" ist somit als Lösung nicht möglich. Es geht darum, die Funktion einer sub im Rahmen eines kurzen Testscripts zu testen. Und dafür möchte ich den Code in der sub gern genau so belassen, wie er auch später in Benutzung aussehen soll. Aktueller Code inkl. des vergessenen Aufrufs (Danke, GUIfreund!) 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"; eval "exit();"; # <-- gibt es eine Lösung ohne Änderungen in der sub? }; 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 $sub_code->(); say "dieser Text darf nicht mehr zu sehen sein"; Quote 10 print "Hallo"
20 goto 10 |