[Perl] Referenzen als Hash- Schlüssel

stso

Mitglied
Hallo,
folgende Satz aus einem Perl- Tutorial umschreibt mein Problem ganz gut:
"Referenzen sind als Schlüssel ungeeignet."
Ich arbeite mit XML-DOM-Bäumen(LibXML) und würde gern zu jedem Knoten einige Werte speichern. Mir erscheint es am effizientesten die einzelnen Knoten als Schlüssel in einem Perl-Hash abzulegen und diesen dann Listen mit diesen Werten zuzuordnen. Jedoch werden in Perl die Referenzen, wenn ich sie als Schlüssel verwenden will, als String abgeleget.

Versuch ich nun zum Beispiel auf Methoden der XML::LibXML::Node- Objektes zuzugreifen, wie im folgenden Besipiel:

Code:
my $document = $parser->parse_chunk("<element>deedee</element>", 1);	
my $node = $document->childNodes()->[0];	# Ein XML::LibXML::Node
my $hash = {};			# Hash indem XML::LibXML::Node als Schlüssel verwendet werden sollen.
my @werte = (1,2,3);	# Werte die dem Knoten zugeordnet werden sollen

$hash->{$node} = @werte;
while(my ($key,$value) = each %{$hash})
{
	print "Name:'".$key->nodeName()."' Anzahl der Werte'".$value."'\n";	
}

Wird mir folgende Fehlermeldung zurückgegeben:

Can't locate object method "nodeName" via package "XML::LibXML::Document=SCALAR(0x2168eec)"

Gibt es eine Möglichkeit die Keys eines Hashes weiter als (Objekt-)Referenzen zu verwenden? Oder ist mein Ansatz völlig falsch gedacht?
Ich will im Grunde nur zu jedem Knoten einige Werte speichern.
 
Als Hash-Schlüssel können nur Strings verwendet werden. Warum speicherst Du die Sachen nicht in einem Mehrdimensionalen Array?
 
Zurück