Thread Anfängerproblem mit "Sortierung" einer Liste
(9 answers)
Opened by Glems at 2009-08-26 13:45
Ich würde das ganze erst mal in eine vernünftige Datenstruktur packen. Hab da mal was gebastelt:
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 use strict; use warnings; # string aus __DATA__ herausholen my $string = <DATA>; # die ersten beiden Datenfelder überspringen $string =~ /(?:[^;]+);(?:[^;]+)/cg; # hash deklarieren, der die Datenstruktur hält my %timestamps; #immer drei Werte aus den String holen while( $string =~ /([^;]+);([^;]+);([^;]+)/cg ) { # und die drei gecaptureten werte in die Datenstruktur bringen push @{ $timestamps{$2}->{$1} }, $3; } # datenstruktur lesbar ausgeben use Data::Dumper; print Dumper \%timestamps; # alles unter __DATA__ kann man mit dem Filehandle DATA auslesen __DATA__ Tool;breakpointTime;name1;02.02.2009 02:02:02;2;name1;03.08.2009 10:10:10;10;name1;03.03.2009 03:03:03;3;name1;01.01.2009 01:01:01;1;name1;16.06.2009 10:59:58;0;name2;02.02.2009 02:02:02;2;name2;03.08.2009 10:10:10;10;name2;03.03.2009 03:03:03;3;name2;01.01.2009 01:01:01;1;name2;16.06.2009 10:59:58;0; Vielleicht hilft das ja schon mal. Zum sortieren würde ich die Zeitstempel in ein gut zu sortierendes Format bringen. Z.B. UNIX Epoch. $_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0 F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B |