Struppi: Parameterübergabe (Hash und Skalar)

Beitrag lesen

Du hälst einem Kind zwei Äpfel hin und wunderst dich das es beide nimmt und beschwerst dich das dein anderes Kind heult, weil es nichts bekommt.

Ich wiederhole: So ist es aber in dem Fall nicht.

Du kannst es so oft wiederholen wie du willst, es bleibt falsch.

Ich halte in meinem Beispiel Äpfel und Birnen nicht zwei Kindern hin sondern nur einem!

my (%tab, $p) = @_;

ich sehe hier _zwei_ Variabeln und das erste ist ein Array.

Die Reihenfolge der Parameter hat in deinem Fall keine Bedeutung, nur die Art der Parameter.

Auch das ist nachgewiesenerweise Quatsch. Wenn man in meinem Beispiel erst den Skalar und dann die hash-Tabelle angibt, funktioniert es (wie auch in einem anderen Beitrag in diesem Thread erwähnt)

Ja, weil du mit dem letzten Parameter das spezial Array @_ komplett aufsaugst, dass es funktioniert liegt nur daran weil du unbedingt ein Array als Parameter übergeben willst und das ist, wie ich dir schon mehrfach gesagt habe nicht sinnvoll.

Diese Art der Parameterübergabe ist flexibel und leicht durchschaubar.
Flexibel ja, aber wie man sieht, leider auf Kosten der Logik und Transparenz!
In anderen Sprachen musst du dich oft festlegen welche Art und wieviele Parameter du übergeben willst, in Perl kannst du einer Funktion immer beliebige Parameter übergeben, diese werden an ein Spezialarray (@_) übergeben.
Sorry, vernünftige Sprachen erkennen die Art der Parameter, und damit ist die Übergabe für sie kein Problem.

Ja, dafür fehlt in die bei Perl vorhandene flexibilität, ob das vernüftig ist oder nicht, kann ich nicht beurteilen. Ich persönlich habe damit keine Probleme und wenn man es verstanden hat (und verstehen will) ist es auch logisch und vernünftig.

Deine Schwierigkeit ist vermutlich, dass dir nicht klar ist, dass ein Hash ein Array ist ....
Deine Schwierigkeit ist vermutlich, dass für Dich Perl ein und alles ist, Du nicht über Perl hinaussehen kannst, formale Logik für Dich ein Fremdwort ist und Du schließlich, wie andere kontroverse Diskussionen zeigen, immer Recht haben willst.

Falls es dir nicht aufgefallen ist.
_Du_ dikutierst ohne Sachverstand und magst nicht die Erkenntnisse die wir hier dir vermitteln wollten aufnehmen. Die formale Logik ist durchaus vorhanden und wurde dir bereits mehrfach versucht nahe zu bringen, es scheint aber nicht zu klappen.

Tut mir leid das wir es versuchen wollen, aber jemand der dermaßen Stur und und auf seine Ansichten beharrt ist nicht zu helfen. Ich werde gerne in Zukunft darauf verzichten mir deine Probleme anzuschauen.

Struppi.