hi @Rolf B
Möglicherweise lässt sich das auch in Perl formulieren; ich weiß nicht, ob in Perl subs als Parameter übergeben werden können.
Aber sicher doch. Mit dem Schlüsselwort $ref=sub{}
wird ja eine Referenz erzeugt und das ist ein ganz normaler Scalar. Gewöhnlich werden Callbackfunktionen als Referenz übergeben.
Ansonsten ist so etwas
f3 = f1(3);
eine der gräßlichsten Vorgegehensweisen die leider auch in Perl Einzug gehalten haben. Sowas ist nämlich ganz schlecht fürs Debuggen, weil es gar keine Funktion gibt in die man schauen könnte um zu gucken was die eigentlich macht. Gute Frage 800 Zeilen weiter unten: was macht eigentlich f3
??? Codereferenzen sind also mit Vorsicht einzusetzen wobei man das auch immer sehr gut dokumentieren sollte.
Und wenn man schon mit CODE Referenzen arbeitet dann wenigstens so:
my $browse = sub{
my $self = shift;
# weiterer CODE
};
also daß man die Funktion namentlich finden und den Code in Augenschein nehmen kann. Und wenn Coderefs schon Konstanten sein sollen, ja warum dann nicht gleich richtige Konstanten definieren!? Daß PI
die Zahl 3.14 ist braucht keinen Kommentar.
Und trotzdem sind auch Konstanten mindestens genauso schlecht wie globle Vars, eben weil man nicht einfach einen Dump mit allen Konstanten ausgeben kann. D.h., wer wissen will, welche Konstanten IO::File
deklariert, muß wohl oder übel in die POD schauen. Immerhin sind Konstanten wenigstens konstant 😉
MfG