Thread Zeilen der Größe nach Ausgeben
(10 answers)
Opened by RhoenSprudel at 2015-03-20 18:00 2015-03-20T19:46:26 Raubtier Deine Funktion ist eine gute Idee. Ich brauchte nur etwas, um Deine Formulierung nachzuvollziehen. Auch verwirrt mich map() immer, aber das ist ja gar nicht in Deiner Funktion. Also, dann sieht das bei mir demnach zusammen so aus (mit Dateieinlesen, damit hatte der OP ja auch noch Schwierigkeiten): Datei: test Datei: sortip.pl 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 35 36 37 38 39 40 41 #!/usr/bin/perl use warnings; use strict; my $filename = "test"; sub ipToInt { my $ip = shift; my $sum = 0; # Splitting at dots is tricky: my @arr = split('\.', $ip); my $i; foreach $i (@arr) { $sum = $sum * 256 + $i; } return $sum; } sub getIPasNumber { my $l = shift; chomp($l); my @a = split(" ", $l); return ipToInt($a[2]); } my $fh; open($fh, "<", $filename) or die; my @a = <$fh>; close $fh; my %h; my $i; foreach $i (@a) { chomp($i); my $num = getIPasNumber($i); $h{$num} = $i; } foreach $i (sort {$b <=> $a} (keys(%h))) { print "$h{$i}\n"; } |