Kurt: hashes of hashes

Beitrag lesen

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