Schrift
[thread]10445[/thread]

Inhalt von Referenz dublizieren



<< >> 8 Einträge, 1 Seite
pktm
 2007-09-22 23:23
#99868 #99868
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Wie kann ich den Inhalt einer Hashreferenz so kopieren, dass die Modifikation der neuen Referenz keine Auswirkungen auf die Ursprungsreferenz hat?

Beispiel:
Code: (dl )
1
2
3
my $hr1 = { 1 => 2 };
my $h2 = $hr1;
$hr2->{1} = 7; # das soll nicht $hr1 betreffen!
http://www.intergastro-service.de (mein erstes CMS :) )
Ronnie
 2007-09-22 23:24
#99869 #99869
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Code (perl): (dl )
my $h2 =  { %$hr1 };
pktm
 2007-09-22 23:27
#99870 #99870
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ronnie+2007-09-22 21:24:55--
Code (perl): (dl )
my $h2 =  { %$hr1 };


Und was genau passiert da?
http://www.intergastro-service.de (mein erstes CMS :) )
Ronnie
 2007-09-22 23:33
#99871 #99871
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
pktm+2007-09-22 21:27:17--
Und was genau passiert da?

Na ja, $hr1 wird dereferenziert, mit dem % und die geschweiften Klammern bilden ein anonymes Hash, dessen Referenz in $h2 gespeichert wird. Wenn der ursprüngliche Hash aber wiederum Referenzen auf weitere Datenstrukturen enthält, funktioniert diese Art von Kopie nicht. Dann würde ich aber empfehlen Objekte zu verwenden, die rekursiv eine copy-Methode aufrufen.
pktm
 2007-09-22 23:52
#99872 #99872
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Gibt es dafür brauchbare Module?

Edit: ist eine rhetorische Frage, ich will nur wissen welche.
http://www.intergastro-service.de (mein erstes CMS :) )
Ronnie
 2007-09-23 00:02
#99873 #99873
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
pktm+2007-09-22 21:52:44--
Gibt es dafür brauchbare Module?

Edit: ist eine rhetorische Frage, ich will nur wissen welche.

Für deep-copy von komplexen Datenstrukturen? da würde z.B. CPAN:Clone gehen, oder die dclone-Funktion von CPAN:Storable, bzw. wahrscheinlich die meisten Kombos aus Serialisierung und Deserialisierung.
ptk
 2007-09-23 00:03
#99874 #99874
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wenn du nichts nachinstallieren möchtest: Storable::dclone
pktm
 2007-09-23 00:04
#99875 #99875
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
ptk+2007-09-22 22:03:05--
Wenn du nichts nachinstallieren möchtest: Storable::dclone


Mit nachinstallieren habe ich keinerlei Probleme :)
http://www.intergastro-service.de (mein erstes CMS :) )
<< >> 8 Einträge, 1 Seite



View all threads created 2007-09-22 23:23.