Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8290[/thread]

Hash als Schlüssel eines Hashes

Leser: 1


<< >> 3 Einträge, 1 Seite
miwieg
 2006-09-03 12:41
#69496 #69496
User since
2006-07-16
59 Artikel
BenutzerIn
[default_avatar]
Hallo!

Ich versuche gerade einen Hash zu erstellen, der als Schlüssel eine Hash-Referenz hat und als Wert ebenfalls eine Hash-Referenz hat:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use strict;

my %keyHash = ();
$keyHash{"a"} = 345;
$keyHash{"b"} = 2;

my %valueHash = ();
$valueHash{"c"} = 3;
$valueHash{"d"} = 4;

my %hash = ();
my $keyHashAsRef = \%keyHash;

$hash{$keyHashAsRef} = \%valueHash;

foreach my $key(keys(%hash)){
my %kHash =%{$key};
print "TEST: " . $kHash{"a"} . "\n";
}


Leider bekomme ich die Fehlermeldung:
Can't use string ("HASH(0x861d660)") as a HASH ref while "strict refs" in use at /home/CE/miwieg/Hiwi/corte/miwieg/workspace/AnnotationStudy/test.pl line 17.

Was mache ich falsch?

Vielen Dank im Voraus!
Ronnie
 2006-09-03 12:50
#69497 #69497
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
In Perl müssen Schlüssel für Hashes immer Strings sein. Ein Hash oder sonstige Datentypen sind nicht möglich. Natürlich sind aber verschachtelte Strukturen, also z.B. Hashes_of_Hashes möglich, solange man Zeichenketten als Schlüssel verwendet.

EDIT: Beschreib mal wieso du das ganze machen willst? Evtl. können wir dann eine tragfähige Lösung aufzeigen.\n\n

<!--EDIT|Ronnie|1157273602-->
miwieg
 2006-09-03 13:27
#69498 #69498
User since
2006-07-16
59 Artikel
BenutzerIn
[default_avatar]
OK, dann werde ich die Datenstruktur noch einmal überarbeiten müssen.

Vielen Dank!
<< >> 3 Einträge, 1 Seite



View all threads created 2006-09-03 12:41.