Thread Fragen zu Hashs (4 answers)
Opened by panni at 2015-07-01 10:43

Raubtier
 2015-07-01 17:02
#181452 #181452
User since
2012-05-04
1054 articles
BenutzerIn

user image
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.

View full thread Fragen zu Hashs