Thread Hash by value als Sub-Parameter übergeben (18 answers)
Opened by KurtZ at 2008-02-06 19:55

betterworld
 2008-02-10 02:56
#105759 #105759
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
KurtZ+2008-02-09 18:59:26--
OK,

Schau an, ein neuer Schritt auf der Magierleiter

Code (perl): (dl )
1
2
     
        my %hash1=(%$hash_ref1, key => 'wert');


dürfte gleichwertig sein zu

Code (perl): (dl )
        my %hash1=do { %$hash_ref1, key => 'wert'  };


aber dann verlassen mich meine Zauberkünste, klär mich bitte auf. :)


Hm, wie Du jetzt auf dieses do-Konstrukt kommst, weiß ich nicht. Worueber soll ich Dich aufklaeren? Wie diese Zeile da oben funktioniert? Naja, wenn Du zwei Hashes folgendermaßen bestückst:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
my %hash1 = (
    karl => 'egon',
    key => 'wert1',
);
my %hash2 = (
    karl => 'egon',
    key => 'wert1',
    key => 'wert2',
);

dann wird in dem zweiten Hash der Schlüssel "key" auch nur ein einziges Mal drin sein (ein Schlüssel ist in einem Hash nie doppelt), und es wird der zweite Wert "wert2" genommen. Und die zweite Anweisung kann man halt auch so schreiben:
Code (perl): (dl )
1
2
3
4
my %hash2 = (
    %hash1,
    key => 'wert2',
);

Ist ja irgendwie dasselbe. Und ungefaehr genauso funktioniert das, was ich tagsüber geschrieben habe.

View full thread Hash by value als Sub-Parameter übergeben