get Value aus einer for-schleife aus aufrufen
Maik Görgens
- perl
0 Marko
Hallo!
Zunächst einmal vielen Dank für eure Hilfe von Gestern.
Node::getAttributes() hat mich da auf die richtige Fährte gebracht.
Aber ich hab schon wieder ein Problem mit XML und Perl.
(Ich benutze XML::DOM).
Ich hab einen Hash, mt den Namen von Attributen und entsprechenden hash-Referenzen als Werte.
Der Hash enthält die Schlüssel 'stand' und 'autor'.
Es Funktioniert auch so, das ich mit
$attr{'stand'} = $attr{'stand'}->getValue(); # und
$attr{'autor'} = $attr{'autor'}->getValue();
an die Werte rankomme.
Will ich das allerdings mit einer for-schleife wie folgt
foreach $key (keys %attr)
{
$attr{$key} = $attr{$key}->getValue();
}
machen, bekomm ich folgende Fehlermeldung:
Can't call method "getValue" on unblessed reference
Find ich komisch, weil sich ja die Werte, an denen ich getValue aufrufe ja an sich nicht ändern.
Weiß jemand, woran das liegen könnte, und wie ich trotzdem mit einer for-schleife an die Sache rankomme.
Andere Lösungen sind auch willkommen, es sei halt nur angenommen, das ich nicht wüßte, welche Schlüssel in %attr sind.
Ich hoffe, das ich mein Problem besser beschreiben konnte, als das gestrige.
Viele Grüße
Maik Görgens
P.S.: Hoffentlch kommt bald die deutsche Übersetzung von XML & Perl vom O'reilly-Verlag. *g*
Hej Maik,
mit fehlte leider etwas die Motivation, nach dem alten Posting zu suchen, daher nur eine kurze Idee, woran es leigen könnte ;o):
foreach $key (keys %attr)
{
$attr{$key} = $attr{$key}->getValue();
}
Wie hast Du %attr gefüllt? Kann es sein, daß Du irgendwann nur ein Key in die Liste gespeichert hast, ohne den entsprechenden Value, z.B. fehlerhaftes Splitting. Versuch doch einfach mal alle Keys von attr auszugeben (hat sich vielleicht ein "Leerkey" (^\s*$) eingeschlichen).
So etwas ist bei mir auch immer wieder eine Fehlerquelle.
Schöne Grüße aus dem Westen,
Marko