Thread Beendet nicht richtig
(12 answers)
Opened by Hummelmann at 2009-08-07 12:34
Erstmal nutzt du
"use strict;" unde "use wrnings;"? damit lassen sich viele Fehler finden. Deine Informationsbasis ist etwas dürftig, nicht nur, das hier Variablen auftauchen, die mit dem eigentlichen Problem nichts zu tun haben, du sagst nicht mal genau was genau das Problem ist. Quote Das ist keine nützliche Aussage. "Bei mir fallen Äpfel von der Kastanie, warum ist das so?" Ist für dich ebenso hilfreich, wenn du mir helfen willst. Dann ist dein Beispielcode überhaupt nicht lauffähig, und enthält wie schon gesagt unnötiges Zeug. Wie soll ich in so was einen Fehler finden? Aber ich habe mir mal die Mühe gemacht und den Code in eine lauffähige Form gebracht: 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 #!/usr/bin/perl # wie schon gesagt use strict; use warnings; use Time::HiRes qw(gettimeofday); my $filename='./input_experiment.txt'; my $CatStarttime=gettimeofday(); my $temptime=0; my $counter=0; my $globalentrycounter=0; my $subjectID=1; my $subjectage=20; my $sex='male'; my $keys_per_second=5; my $synccounter=0; # Bitte Fehlerbehandlung nicht vergessen # und die dreiparameterige form von "open" nutzen # damit vermeidet man mögliche Fehler. open(my $outputfh, ">>", $filename) or die "ERROR open $filename"; print "Geben Sie einen Namen ein. [Falls Sie keine mehr wissen, '999' eingeben]\n\n"; while (1) { my $sinput = <STDIN>; chomp ($sinput); my $entrytime = gettimeofday() - $CatStarttime; my $entryduration = $entrytime - $temptime; my $inputlength = length($sinput); # my $correctedduration = $entryduration - $inputlength/$keys_per_second; #replace "," with "°" $sinput =~ tr/,/°/; # schleife beenden last if($sinput eq '999'); if($inputlength > 1) { $counter++; # no need for global entry # $globalentrycounter++; print $outputfh "$subjectID, $subjectage, $sex, $CatStarttime, $entrytime, $entryduration, $inputlength, $sinput, $counter, \n"; } else { local $| = 1; print "Bitte keine Abkürzungen oder leere Eingaben. Weiter mit der Enter-Taste."; <STDIN>; } $temptime = $entrytime; # clear screen? print "\n" for (1..1000); } close($outputfh); $synccounter = $synccounter + 1; # clear screen? print "\n" for (1..1000); print "Sie haben nun das Ende dieses Experiments erreicht.\n"; print "Sie haben CHF $counter Namen eingegeben.\n"; print "Bitte wenden Sie sich an die/den VersuchsleiterIn.\n\n\n\n"; Last edited: 2009-08-07 13:58:56 +0200 (CEST) |