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

Linuxer
 2013-02-07 16:30
#165577 #165577
User since
2006-01-27
3872 Artikel
HausmeisterIn

user image
Hi,
kann ich nicht nachvollziehen, dass es bei Dir mit \S nicht klappt:

Code: (dl )
1
2
3
4
5
6
7
8
# mit .+ landet \r in $1
$ perl -MData::Dumper -we '$Data::Dumper::Useqq = 1; $a="Hallo\r\n"; $a =~ m/(.+)/; print Dumper $1;'
$VAR1 = "Hallo\r";

# mit \S+ landet kein \r in $1
$ perl -MData::Dumper -we '$Data::Dumper::Useqq = 1; $a="Hallo\r\n"; $a =~ m/(\S+)/; print Dumper \$1;'
$VAR1 = "Hallo";
$



Man kann das Verhalten des chomp() schon beeinflussen, aber man sollte wissen, was man und wie man es tut ;-)

Alternativ kannst Du in Deiner Regex auch \w anstatt \d oder ..
\w steht für Buchstaben, Zahlen und den Unterstrich... Damit läufst Du nicht Gefahr, Dir ein \r einzufangen und hast doch Zahlen und Buchstaben abgedeckt...

Was wäre also hiermit?
Code: (dl )
1
2
3
4
5
6
7
8
9
10
my @sorted =
map{$_->[0]}
sort {$a->[1] <=> $b->[1]}
map{
/chr(\w+)/;
my $x = $1;
if ($x eq "X") {$x=23}
if ($x eq "Y") {$x=24}
$_=[$_,$x]
} @unsorted;
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

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