Hi,
Das Problem ist, dass eine Listen eine beliebige Länge haben kann und darum alle folgenden Parameter ebenfalls in die Liste geschrieben werden.
Ja, so klappt es, aber schön unlogisch - oder?
Eigentltich nicht.
Woher soll der Interpreter wissen wie viele Elemente eine Liste (in deinem Fall der Hash) haben soll? Also packt er einfach alle Werte die nach dem "=" kommen in die Liste.
Du kannst es so sehen, dass du die Subroutine immer mit einer einzigen Liste als Parameter aufrufst.
($x,$y,$z) ist ja auch nur eine Liste mit 3 Werten.
Sie werden dann in der Unterfunktion alle in der Liste @_ gespeichert.
mfG,
steckl