Thread Array-Elemente sortieren und letztes Array-Element löschen
(10 answers)
Opened by ITobiI at 2015-11-10 15:15 2015-11-10T16:05:19 ITobiI Mal abgesehen von dem Socket-Problem, dass die anderen diskutieren - wenn Du aus Deiner Message Index und Nutzdaten extrahiert hast und die Nutzdaten in einem Array unter dem Index ablegst, hast Du die Nutzdaten doch in der gewünschten Reihenfolge. Was musst Du sie dann noch sortieren? Das einzige was sein könnte, ist dass die Message für einen bestimmten Index zwischendurch noch fehlt und der Arraywert für diesen Index deshalb undef ist. Wenn Du deine Daten irgendwann in eine andere Reihenfolge bringst, sie danach aber wieder nach dem Index sortieren möchtest, empfiehlt sich, die Message in eine komplexere Datenstruktur zu verwandeln, die Felder für Index und Nutzdaten (und evtl. noch mehr) hat. Diese komplexe Datenstruktur kann ein Objekt, ein anonymer Hash mit festgelegten Keys oder ein anonymes Array sein. Beispiele: Code (perl): (dl
)
1 2 3 4 5 6 7 8 # HASH my $msg = {index => $a, data => $data}; # datenstruktur anlegen push @array, $msg; # in liste speichern my $index = $msg->{index}; my $data = $msg->{data}; # Liste von Messages nach Index sortieren my @sorted = sort {$a->{index} <=> $b->{index}} @array; Code (perl): (dl
)
1 2 3 4 5 6 7 8 # ARRAY - 0: index, 1: data my $msg = [$a, $data]; # datenstruktur anlegen push @array, $msg; # in liste speichern my $index = $msg->[0]; my $data = $msg->[1]; # Liste von Messages nach Index sortieren my @sorted = sort {$a->[0] <=> $b->[0]} @array; |