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