Thread Numiersche Sortierfunktion (12 answers)
Opened by Gast at 2012-11-29 07:47

hlubenow
 2012-11-30 16:45
#163801 #163801
User since
2009-02-22
875 articles
BenutzerIn
[default_avatar]
Hier nochmal eine etwas "wörtlichere" Übersetzung meines Ansatzes:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/perl

use warnings;
use strict;

my %h = ("als" => 5,
         "wie" => 3,
         "Von" => 3,
         "zu"  => 5,
         "von" => 10);

my $i;
my $u;

my @k = keys(%h);
my %h2 = ();

foreach $i (@k) {
    if (! exists($h2{$h{$i}})) {
        $h2{$h{$i}} = [];
    }
    push( @{ $h2{$h{$i}} }, $i);
}

my @k2 = keys(%h2);
@k2 = sort({$b <=> $a} @k2);

foreach $i (@k2) {
    print "$i\t";
    foreach $u (@{ $h2{$i} }) {
    print "$u, ";
    }
    print "\n";
}

Der Code von Linuxer ist sicher schöner, wenn man ihn versteht. So leicht ist meiner allerdings auch nicht zu verstehen. :(
Man müßte halt mit einem Hash von Arrays klarkommen. Diese Dinge sind z.B. in dem Buch "Intermediate Perl" und z.B. auch in "perldoc perllol" beschrieben. Wie der Titel des Buches schon sagt, geht das ein bißchen über das Anfänger-/Grundlagenwissen hinaus. Dennoch braucht man es häufiger, so daß es sich schon lohnt, sich damit einmal zu beschäftigen.

View full thread Numiersche Sortierfunktion