Hallo Michael,
danke für Deine schnelle Antwort.
Hier erstmal ein Lösungsansatz, wobei ich noch nicht sagen kann, dass er auch funktioniert, da das Programm noch läuft ... Mit MLDBM tie kann man zwar durchaus Hashes von Arrays bearbeiten, aber eben doch nicht genauso wie ohne tie.
Die Änderungen sind dieser Art:
$tmp = $hKotext{$sKotstring};
push(@{$tmp}, join("+", @zwischenelemente));
$hKotext{$sKotstring} =$tmp;
So wie ich das verstanden habe: Der Wert, auf den die
Referenz von $hKotext{$sKotstring} verweist, wird $tmp zugewiesen.
Wie geschrieben, ich muss erst schauen, ob es so geht, aber die Lösung geht in diese Richtung. Weil ich am Wochenende wohl nicht da bin, wollte ich Dir zumindest schon mal dies als Rückmeldung geben.
Brauchst Du das unbedingt? Will sagen: Greifst Du direkt indizierend auf Komponenten der Arrays zu?
Ähhh. Was ist "direkt indizierend"? - Ich zähle und sortiere jedenfalls die Elemente, die im Array stehen. Und diese Elemente sind außerdem noch komplex, d.h. es kann sich um Elemente mit einem oder mehreren Unterelementen (=Wörtern) handeln. Das sieht dann so aus:
vor+allem zum+Beispiel Wort Michael Michael+Schröpf Schröpf etc.
Alternativ könntest Du das über eine Funktion einschalen, die einen Hash-Inhalt mit split dynamisch zerlegt und die gewünschte Komponente zurückliefert. (Dann enthielte der Hash selbst nur Strings mit via join() codierten Tabellenzeilen.)
Kann ich die dann noch sortieren? Um eine Liste komme ich doch wohl nicht rum?
Ich an dieser Stelle leider nicht - sorry.
So wie ich "perldsc.html" über komplexere Datenstrukturen verstanden habe, würden die wohl einen Hash of Lists verwenden - ein Hash of Arrays ist dort nicht explizit beschrieben.
Ich dachte immer, eine Liste sei identisch mit einem Array in Perl. Sorry, ich bin noch ziemliche Anfängerin.
Das Problem ist aber vor allem, dass das Programm was ganz anderes macht, sobald Du das hash tiest.
Bald mehr von
Petra