Perl sort hexnumber
Alinghi
- perl
0 Sven Rautenberg0 Horst
Hi zusammen,
kann mir jemand verraten, wie ich hexadezimal sortieren kann mit perl?
Quasi sowas wie hier ...
@articles = sort {$a <=> $b} @files;
... bloss eben mit hexzahlen.
Danke.
ciao,
Alinghi
Moin!
kann mir jemand verraten, wie ich hexadezimal sortieren kann mit perl?
Genauso wie Dezimalzahlen: Als Zahl. Mach aus dem Hex eine Integer, der sortiert sich dann fast von selbst. Und für die Ausgabe formatierst du ihn mit printf als Hex.
- Sven Rautenberg
Hi,
Moin!
kann mir jemand verraten, wie ich hexadezimal sortieren kann mit perl?
Genauso wie Dezimalzahlen: Als Zahl. Mach aus dem Hex eine Integer, der sortiert sich dann fast von selbst. Und für die Ausgabe formatierst du ihn mit printf als Hex.
my @alp_sorted = sort { lc($a) cmp lc($b) } @unsorted;
So tut es auch. Danke
ciao,
Alinghi
Hi,
my @unsorted = ( "10", "A", "A0" );
my @alp_sorted = sort { lc($a) cmp lc($b) } @unsorted;
==> @alp_sorted ist ("A", "A0", "10") bzw. dezimal (10, 160, 16).
Deine Methode funktioniert nur, wenn Deine Strings alle dieselbe Stellenzahl haben (also im Beispiel ("10", "0a", "A0") statt ("10", "a", "a0"))
cu,
Andreas
Hallo,
kann mir jemand verraten, wie ich hexadezimal sortieren kann mit perl?
hex() ist Dein Freund:
hex EXPR
hex Interprets EXPR as a hex string and returns the corresponding
value. (To convert strings that might start with either 0, 0x,
or 0b, see the oct entry elsewhere in this document.) If EXPR is
omitted, uses "$_".
print hex '0xAf'; # prints '175'
print hex 'aF'; # same
Hex strings may only represent integers. Strings that would
cause integer overflow trigger a warning.
so also
sort { hex($a) <=> hex($b) } @hexn_array
Viele Grüße,
Horst Haselhuhn