N.: Anordnung Subroutines

Beitrag lesen

Das war keine Polemik. Das war Humor, Edward. Du darfst ruhig lachen.

Ehrlich gesagt, finde ich dein Gegenbeispiel viel chaotischer. Das würde bei uns im Codereview gnadenlos zurückgewiesen werden. Typeglobs statt lexikalische Handles? Zwei- statt Drei-Argumente-Form von open? "Old" statt "Cargokult" (&sub macht in Perl5 nicht das, was du denkst, dass es tut)?

Mein Beispiel war hingegen minimal, um das Problem aufzuzeigen. Ich bin mit diesem Gotcha bezüglich "Bareword ... not allowed" vertraut, aber das kann man nicht über alle Mitprogrammierer sagen. Aus diesem Grund haben wir die Richtlinie eingeführt, konsequent der Konvention zu folgen, den Hauptteil am Ende zu haben. So tritt dieses Problem nie aus, es *kann* nicht auftreten.

Es hört ja bei Subs nicht auf. Definieren wir uns mal eine Konstante, die mehrmals benötigt wird, bspw.:

  
        Readonly our $ITEM_MARGINS => 4;  

Hier hilft keine alternative Aufrufssyntax; dies *muss* schlichtweg vor dem Hauptteil stehen. Ebenso müssen Pragmas und Module auch zusammen am Anfang stehen; dadurch importierte Symbole sind erst hinter der use-Anweisung (trotz Compile-Laufzeit!) verfügbar.

Es ist also einfach gute und notwendige Praxis, dass der Hauptteil erst zum Schluss kommt. Das ist in C so und und in Pascal und gilt vermutlich auch für den Rest der Algol-Nachkömmlinge.