HiHo!
Ich habe ein Array, das so aufgebaut ist:
5736385736|name|name|name|name
58476374|name|name|name|name
48695475767|name|name|name|name
Jede Zeile entspricht dabei einem Arrayelement.
Ich muss nun dieses Array sortieren. Und zwar stellen die Zahlen am Anfang einen Usernamen in Hexadezimalform dar. Der Algorithmus soll nun den richtigen Namen (also vom Hexadezimalsystem wieder umgewandelt in Buchstaben) nach dem Alphabet sortieren, wobei das gesamte Array Element im neuen sortierten Array natürlich erhalten bleiben soll.
Beispiel:
(1) Umwandlung von Hex
Stefan|name|name|name|name
Erik|name|name|name|name
Mark|name|name|name|name
(2) Sortierung nach Namen:
Erik|name|name|name|name
Mark|name|name|name|name
Stefan|name|name|name|name
Der Name muss dann natürlich nochmal in seine Hex-Darstellung umgewandelt werden.
Letztendlich sollte also das Array sortiert sein.
Wie kann ich das möglichst mit nur einem einzigen Suchalgorithmus erledigen?
Von Hex nach Buchstaben und zurück verwandele ich immer so:
$hex = "Erik";
$hex = unpack("H*", $hex); # = Hexadezimal
$hex =~ s/([a-fA-F0-9]{2})/pack("C", hex($1))/eg; # ... und wieder zurück
Wer weiß was? ;)\n\n
<!--EDIT|[E|B]|1077556118-->
Gruß, Erik!
s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}
It's not a bug, it's a feature! - [CGI-World.de]