Thread Hash-Übergabe als Referenz ohne Bezug auf Original (26 answers)
Opened by marky at 2009-09-25 16:06

murphy
 2009-09-25 18:47
#126230 #126230
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
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.

View full thread Hash-Übergabe als Referenz ohne Bezug auf Original