CPAN: wie organisiert ihr euren Quellcode?

Beitrag lesen

FTP-Verzeichnis-Funktion [...] Gibt es solch eine Funktion im Padre irgendwo versteckt?

Im Changelog steht, seit Version 0.50 ist FTP dabei. Ich kann keinen Support geben, am besten fragst du die Leute selber: #padre auf dem MagNET, irc://irc.perl.org/padre

Tausche die Reihenfolge von [Subs] und [sonstigem Gedöns] aus.
Diese Erklärung täte mich interessieren.

Grund 1: Wenn du Variablen auf gewisse Art im File-Scope (oberste Ebene) deklarierst, gelten sie für nachfolgende/einschließende† Subs. (Hausaufgabe: programmiere zwei Arten in Beispielprogrammen, die trotz use strict; use warnings FATAL => 'all'; funktionieren.) Das verleitet zum schlechten Programmierstil, Zustand zu verstecken. Richtig stattdessen ist es, Parameter immer explizit zu übergeben sowie Werte immer mit return() zurückzugeben.

† Experten dürfen sich für den Fall einschließende Sub (»closure«) über diese Regel hinwegsetzen.

Grund 2: Wenn du zuerst Subs deklarierst und dann erst später im Quellcode namentlich‡ aufrufst, funktioniert das immer garantiert. Der umgekehrte Fall gilt nicht immer. Bei Metaprogrammierung tut sich ein Programmierer leicht in die Situation, wo Perl sinngemäß sagt: "Funktion xyz? Kenn'sch nich." und er schier verzweifeln mag, weil sie doch eindeutig da steht…! (Die meisten Leute fangen dann an, mit BEGIN-Blocks umherzumurksen, wo schon die richtige Platzierung von Subs reichen würde.)

Aber man muss gar nicht einen Abstecher in diese Gefilde höherer Ordnung machen, um einen stark verwandten Effekt wahrzunehmen, probier mal:

  
sub foo { die "I'm fooing to death!" }  
foo;  

Und dann vertausche die Zeilen.

‡ Experten erkennen, dass dies des Pudels Kern ist.

Ich habe deinen anderen Thread gelesen. Du musst wirklich OO anfangen; damit vermeidest du die überwiegenden Anzahl der Fälle, globale/geteilte Variablen benutzen zu müssen. Hole dir getrost Rat von Angesicht zu Angesicht: http://perlmongers.de/ http://conferences.yapceurope.org/gpw2010/