Thread alarm Funktion für Eingabe (4 answers)
Opened by mordur at 2007-08-14 11:43

mordur
 2007-08-14 11:43
#98110 #98110
User since
2003-09-25
182 Artikel
BenutzerIn
[Homepage] [default_avatar]
moins,

ich habe mir mal perldoc -f alarm angeschaut und daraus folgendes kleines Beispielskript gebastelt:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my $name=undef;

print "Name?: ";

eval {
local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required
alarm 5;
$name = <STDIN>;
chop($name);
alarm 0;
};
if ($@) {
die unless $@ eq "alarm\n"; # propagate unexpected errors
print "\ndu hast nichts eingegeben!\n";
}
else {
print "\n Danke fuer den Namen: ".$name."\n";
}


Der Nutzer soll irgendwas eingeben und das Skript warte im Beispiel 5 Sekunden auf eine Eingabe. Die Alarmzeit läuft aber weiter, auch während der USer was eingibt. Wenn der Nutzer also ein sehr laaaaaangsamer Tipper ist, dann wird seine Eingabe vom Skript einfach unterbrochen. Ich könnte jetzt natürlich auch die Alarmzeit hochsetzen, aber dann könnte ich die alarm-Geschichte einfach ganz weglassen. Ziel ist es während einer Eingabe die alarmzeit zu verlängern und ansonsten eine bestimmte Zeit auf eine Eingabe zu warten und dann abzubrechen wenn keine Eingabe erfolgt.

View full thread alarm Funktion für Eingabe