perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 20
Click for quality!




12.02.2012 / 03:08

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragsortieren von referenzen
Seitenanfang
Hi,

habe ein Problem in Perl, was ich nicht zu lösen weiss.
Ich habe einen Skalar $text und ein Feld @ref, welches von 0 - (textlänge-1) belegt ist. Dieses dient mir dann als Referenzfeld auf den Skalar.

Bei z.B. $text = "test"
und ich jetzt $ref[2] ausgeben lasse, um so den Restskalar zu bekommen (hier benutze ich "substr") bekomme ich "st" ausgegeben.

Nun zu meinem Problem. Ich möchte das Referenzfeld alphabetisch sortieren. Für das Beispiel also folgende Teilskalare:

$ref[0] = test, $ref[1] = est, $ref[2] = st, $ref[3] = t.

Hier wäre also die alphabetische Reihenfolge: est, st, t, test
Sprich mein Feld @ref sollte jetzt die Elemente in folgender Reihenfolge besitzen: 1, 2, 3, 0 (falls ich jetzt richtig sortiert hatte )

Hat jemand ne Idee, wie das zu lösen ist, und wichtig ist, dass das ne gute Laufzeit hat, denn das soll später für ganze Texte benutzt werden und nicht nur für 1, 2 Wörter.

Danke im Voraus

Datum: 15.05.2005-22:01

Beitragre: sortieren von referenzen
Seitenanfang
my @ref = sort{$a cmp $b}@ref;

Datum: 16.05.2005-14:42

Beitragre: sortieren von referenzen
Seitenanfang
Sortiert mir das nicht nur die Elemente im Feld und nicht den Restskalar, auf das die Elemente zeigen ?
Also hier tut sich da nichts bei.

Datum: 16.05.2005-15:56

Beitragre: sortieren von referenzen
Seitenanfang
dann probier mal:

my @ref = sort{substr($skalar,$a) cmp substr($skalar,$b)}@ref;

Datum: 17.05.2005-08:35

Beitragre: sortieren von referenzen
Seitenanfang
wow !!!
Unglaublich, aber das klappt. Eine Zeile. Und ich hatte schon einen kompletten Quicksort versucht zu schreiben dafür.
Vielen Danke :)

Datum: 17.05.2005-12:07

-






-
-