Thread Hashvalues nach Variablen sortieren: SCHWER (25 answers)
Opened by Gast at 2004-09-01 16:49

Taulmarill
 2004-09-01 18:32
#49758 #49758
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
also, unter auslassung deines geposteten codes habe ich mal ein script geschrieben, welches den von dir beschriebenen input sauber formatiert und sortiert.
Code: (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
#!/usr/local/bin/perl

use strict;
use warnings;

use Time::Local;
use POSIX qw(strftime);

my %flights;

while ( my $line = <DATA> ) {
chomp $line;
my ( $date, $num, $to, $from, $char, @times ) = split / /, $line;
my $text = "$num $to $from $char";
my ( $mday, $mon, $year ) = split /\./, $date;
for my $time (@times) {
my ( $hour, $min ) = split /:/, $time;
my $epoch = timelocal( 0, $min, $hour, $mday, $mon, $year );
push @{ $flights{$epoch} }, $text;
}
}

for my $key ( sort keys %flights ) {
my $time = strftime "%a %b %e %H:%M %Y", localtime($key);
for my $flight ( @{$flights{$key}} ) {
print "$time - $flight\n";
}
}

_ _DATA_ _
30.07.2004 123456 Malaga Bielefeld C 12:15 11:31
23.07.2004 654321 Berlin Bielefeld D 13:00 12:58
04.07.2004 587931 Barcelona Bielefeld E 14:00 12:00
30.07.2004 356987 Muenchen Bielefeld A 12:50 12:00
30.07.2004 879652 Koeln Bielefeld B 12:55 12:15
30.07.2004 456987 Bonn Bielfeld H 14:00 11:55
05.08.2004 456789 Freiburg Bielfeld C 15:00 13:00
01.09.2004 336632 Berlin Bielefeld B 22:00 19:00
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B

View full thread Hashvalues nach Variablen sortieren: SCHWER