Thread daten auslesen benötige hilfe
(23 answers)
Opened by quant at 2009-02-10 16:37
Schön, dass du einige Kommentare geschriben hast und "strict" sowie warnings genutzt hast, auch die Einrückung ist jetzt besser. Danke.
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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 #!/usr/bin/perl use strict; use warnings; # Ein Hash mit den Eventnamen als Schlüssel. # die Werte sind Zähler, # welche die Häfigkeit des Auftreten der Events zählen. my %events; # Geammtanzahl der Events my $noe; while(<>) { my @stuff=split(' '); if(/UQMD/){ } elsif(/projectile:/){ my $protar=$_ } elsif(/equation_of_state:/){ my $ecm=$stuff[5]; my $midy=log($ecm/0.938); my $elab=$stuff[3]; my $plab=$stuff[7]; } elsif(/event#/){ $noe++ # numbers of events: noe } else{ if($#stuff==14){ my @x=@stuff[0..3]; my @p=@stuff[4..7]; my @id=@stuff[8..11]; my $mass=$id[0]; my $ityp=$id[1]; my $iz2=$id[2]; my $charge=$id[3]; # ab hier steht folgende info zur verfuegung: # stuff[0] = r_0 = $x[0] # stuff[1] = r_x = $x[1] # stuff[2] = r_y . # stuff[3] = r_z . # stuff[4] = p_0 = $p[0] # stuff[5] = p_x = $p[1] # stuff[6] = p_y . # stuff[7] = p_z . # stuff[8] = mass = $id[0] # stuff[9] = ityp = $id[1] # stuff[10]= iz2 = $id[2] # stuff[11]= charge = $id[3] # Events eines bestimmten Typs zählen $event{$itype}++; if ($ityp==27) { print("lambda \n"); print("Event", $noe, "\n"); # Wenn der event des Typs "27" mindestens zwei mal aufgetaucht ist... if ($event{27} >= 2){ print("match"); # es könnte sinnvoll sein den zähler wieder zurück zu setzen, # oder die bedingung auf ==2 zu setzen. # Aber ich weiss nicht genug über die Logick um dir da zu helfen } } } } } |