Thread Natürlicher Sort, aber nicht mit @sorted = sort @unsorted (30 answers)
Opened by Student87 at 2013-02-05 17:52

Student87
 2013-02-07 14:44
#165566 #165566
User since
2012-11-08
73 Artikel
BenutzerIn
[default_avatar]
Danke FIFO für den Hinweis -> ich hatte \d durch \. ersetzt anstatt durch .

Eine Fehlerquelle weniger.

Ich hatte mir selber eine Lösung erdacht, in der ich einfach 2 If-Konditionen einbaue:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
my @sorted = 
  map { $_->[0] } 
  sort { $a->[1] <=> $b->[1] } 
  map{
    /chr(.+)/; 
    if ($1 eq "X") { $1=23 }; 
    if ($1 eq "Y") { $1=24 }; 
    $_=[$_,$1]
  } @unsorted;


Die schien mir ziemlich gut und einfach (X wird zu 23 und Y wird zu 24, dann kann ich es beim numerischen Operator belassen). Der Sort funktioniert aber nicht und er sagt:
"Argument "X\r" isn't numeric in numeric comparison (<=>) at ./get_tandem_positions line 12, <IN> line 77."

Warum funktioniert diese simple kleine Lösung nicht?

@topeg:

1) if( !$s ) -> bedeutet das: wenn $s undefined ?
2) Zeile 4 -> Bedeutet das "wenn beide Zuweisungen erfolgreich sind" ? Wenn ja: Warum sollten sie nicht erfolgreich sein ? Ich mein: wegen Zeile 15 enthält doch $s IMMER entweder X oder Y oder nen leeren String. D.h. im Sort ist $s niemals undefined und die Zuweisung funktioniert immer ?


modedit Editiert von GwenDragon: Codebandwurm umstrukturiert
Last edited: 2013-02-07 15:24:56 +0100 (CET)

View full thread Natürlicher Sort, aber nicht mit @sorted = sort @unsorted