#!/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'"; }