Thread Hash-Übergabe als Referenz ohne Bezug auf Original
(26 answers)
Opened by marky at 2009-09-25 16:06
Code:
Code (perl): (dl
)
my $new_hashref = { %$H } ; Bedeutung: Dereferenziere Skalar $H als Hash, extrahiere alle Schlüssel-Wert-Paare in eine Liste, baue einen neuen anonymen Hash aus der Liste auf und weise eine Referenz auf den neuen Hash dem Skalar $new_hashref zu. Code: Code (perl): (dl
)
my $new_hashref = \%{$H} ; Bedeutung: Dereferenziere Skalar $H als Hash, erzeuge eine neue Referenz auf das Ergebnis und weise diese dem Skalar $new_hashref zu. Anders ausgedrückt: Weise $new_hashref das gleiche zu, was auch in $H steht, aber mache das möglichst umständlich und lasse es nur funktionieren, wenn der Wert eine Hashreferenz ist ;-) Effektiver Unterschied: Im ersten Falle zeigt $new_hashref auf eine flache Kopie des von $H referenzierten Hashes, im zweiten Falle zeigt $new_hashref auf denselben Hash wie $H. When C++ is your hammer, every problem looks like your thumb.
|