Hi Stephan,
my $ref;
$ref = $domains{"test.de"};
%addresses = %{$ref};
Hier kopierst du den Inhalt von %{$ref} in %adresses.
$addresses{"juhu@test.de"} = 3;
hier änderst du %adresses NICHT %{$ref}.
print(keys(%addresses));
print("\n");
print($ref . "\n");$ref = $domains{"test.de"};
my %addresses2 = %{$ref};
Hier kopierst du den Inhalt von %{$ref} in %adresses2.
print(keys(%addresses2));
%adresses2 hat natürlich keinen Inhalt.
print("\n");
print($ref . "\n");
Die Ausgabe ist jedoch die folgende:
juhu@test.de
HASH(0x19620b0)HASH(0x19620b0)
stimmt! Ist dir jetzt auch klar warum? Bitte antworten...
wenn du hingegen sowas machen würdest (ungetestet)
$domains{"test.de"}={};
$domain_ref = $domains{"test.de"};
$domain_ref->{'juhu@test.de'} = 3;
$domain_ref2 = $domains{"test.de"};
$domain_ref2->{'hoho@test.de'} = 42;
$domain_ref3 = $domains{"test.de"};
our %hashname;
*hashname= $domains{"test.de"};
$,="\n";
print keys(%$domain_ref3);
print "\n---\n";
print keys(%hashname)
solltest du erreichen was du wolltest
hoho@test.de
juhu@test.de
---
hoho@test.de
juhu@test.de
bye
Kurt