Thread Hat Perl events?
(12 answers)
Opened by bianca at 2021-10-27 09:35
Hi!
Bin nicht sicher ob schon eine Lösung dabei ist, ich beschreibe es mal genauer: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 #!/usr/bin/perl use strict; use warnings; use 5.010; my $test = unterprog(); say "Erg.: ".(defined $test ? $test : ''); sub unterprog { my $back = 0; # hier möchte ich eine Art Handler platzieren: handler_variable ($back ne '0') { # hier passiert noch mehr return $back; } # hier folgt jetzt viel Code # und bei jedem Kommando kann es zu Fehlern kommen # und immer wenn das passiert soll quasi ein return # ausgeführt werden # z. B.: unlink('diese_datei_gibt_es_aber_nicht') or $back = "$! in ".__LINE__; # bitte nicht auf das Beispiel antworten, # das ist wie vesagt nur ein BEISPIEL # um das selbe Ergebnis ohne den Handler # zu erreichen müsste ich schreiben: unlink('diese_datei_gibt_es_aber_nicht') or do { $back = "$! in ".__LINE__; # wir nehmen an, dass hier mehr passiert # als nur diese Zuweisung return $back; }; return "Ende erreicht mit \$back='$back'"; } Hier erwarte ich bei Mißerfolg von unlink ein Feuern des Handlers ausgelöst durch $back = "$!... in Zeile 23 und nicht erst in 31. Und das Ziel ist damit, dass man nicht bei jedem Kommando ein aufwendiges or do {} schreiben braucht sondern nur kurz und knackig den Fehler in $back schiebt und es geht "automatisch" zurück. Danke 10 print "Hallo"
20 goto 10 |