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.

So ist es aber in dem Fall nicht.

Doch exakt so ist es in diesem Fall.

Ich kenne keine Programmiersprache - ausser jetzt Perl - wo die Reihenfolge der Parameter beim Funktions-/Unterroutinenaufruf eine derart gravierende Bedeutung hat.

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

Diese Art der Parameterübergabe ist flexibel und leicht durchschaubar. 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.

Deine Schwierigkeit ist vermutlich, dass dir nicht klar ist, dass ein Hash ein Array ist und du deshalb nicht erkennst, dass ein Array als Parameter eben nicht ein Wert ist sondern jeder Eintrag ist ein Parameter, deshalb ist es sinnvoll ein Hash als Referenz zu übergeben oder den von Alexander gezeigten Weg mit Protyping.

Struppi.