Thread Fragen zu Hashs
(4 answers)
Opened by panni at 2015-07-01 10:43
Hallo panni,
das gleiche Verhalten hast du nicht nur mit Hashes, sondern auch mit Arrays. Also ein Beispiel: Nehmen wir an, dass $scalar=1 und @array=qw(1 2);. subroutine($scalar, @array) ist dasselbe wie subroutine(1, 1, 2), daher kann innerhalb der subroutine nicht mehr entschieden werden, ob überhaupt ein Array übergeben wurde und wenn ja, wo. Bei @a2=(1,1) würde subroutine(@a2, 2) ebenfalls dasselbe tun. Arrays können also auch nur als Referenz übergeben werden, ansonsten sieht es innerhalb der sub so aus, als wären alle Array-Elemente einzeln übergeben worden. Das ist hier also analog zur Übergabe eines Hashes. Allgemein: in Perl übergibt man eine Liste von skalaren Werten an eine sub - und Referenzen sind Skalare, Arrays und Hashes werden zu Listen von Skalaren expandiert. Und noch ein allgemeiner Hinweis: bitte rufe Subs ohne das & auf, da dieses Prototypen überschreibt. |