Struppi: subroutine beenden mit exit(&subroutine);

Beitrag lesen

hallo,

ich habe im archiv gelesen, dass es ein unschöner programmierstil sei, wenn subroutinen mit exit beendet werden.

Jein.
Du beendest ja in deinem Falle nciht die subroutine, sondern möchtest das Programm beenden und dann ist exit die Wahl.

open(FH, ">a.txt") or exit(&test);

?????
exit ist ein Perl Funktion und der übergibst du den Rückgabewert der Funktion test?

sinnvoller:

open(FH, ">a.txt") or die "Kann a.txt nicht öffnen, weil: $!";

oder eben

open(FH, ">a.txt") or test("Kann a.txt nicht öffnen, weil: $!");

sub test {

print $_[0];
exit;

}

exit sollte nur in ausnahmefällen verwendet werden, weil der Code dadurch schwerer wartbar wird. aber in so  einem  Falle, d.h. bei einem schweren Fehler, durchaus üblich.

Struppi.