Stephan: dynamisches initialisieren von mehrdimensionalen Hashes

Beitrag lesen

Danke für die Antwort! Leider klappt das noch nicht so richtig wie ich will. Vielleicht mach ich noch was falsch. Nach der initialisierung mach ich folgendes:

----------------------------
my $ref;
$ref = $domains{"test.de"};
%addresses = %{$ref};

$addresses{"juhu@test.de"} = 3;

print(keys(%addresses));
print("\n");
print($ref . "\n");

$ref = $domains{"test.de"};
my %addresses2 = %{$ref};
print(keys(%addresses2));
print("\n");
print($ref . "\n");
----------------------------

Die Ausgabe ist jedoch die folgende:

----------------------------
juhu@test.de
HASH(0x19620b0)

HASH(0x19620b0)
----------------------------

Aus irgendeinem Grund ist der Hash beim zweiten Aufruf also leer, ! Kann jemand meinen Denkfehler erkennen?

Danke für Eure Hilfe!
Stephan

Ich würde gerne einen zweidimensionalen Hash initialisiern um ihn später füllen zu können. Die Keys des äußeren Hashs kommen dynamisch aus einer Liste (@list).
Folgendes funktioniet nicht, da dadurch alle Keys auf die gleiche Refernz zeigen:


my @list;
my %domains;
my %addresses;

Den brauchst du nicht.

foreach (@list){
$domains{$_} = %addresses;

so geht's:$domains{$_} = {};

Struppi.