Thread Beendet nicht richtig (12 answers)
Opened by Hummelmann at 2009-08-07 12:34

topeg
 2009-08-07 13:51
#123944 #123944
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
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
Der unten aufgeführte Code (resp. dessen Ende) beendet nicht so, wie ich das will

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)

View full thread Beendet nicht richtig