Leser: 1
5 Einträge, 1 Seite |
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";
}
murphy+2007-08-14 10:59:49--In diesem Falle wäre es doch ganz einfach, vor dem Lesen der Eingabe einen select-Systemaufruf auf die Standardeingabe auszuführen. Läuft bei diesem Aufruf der eingestellte Timeout ab, so hat der Benutzer wohl nichts eingegeben, meldet der Aufruf bereitstehende Eingabedaten, so führt man einfach read aus, was dann solange zu lesen versucht, bis eine komplette Zeile eingeben wurde.
QuoteIch denke der TE möchte einfach soetwas haben wie, wenn der Nutzer 10 sekunden lang keine Taste gedrückt hat, dann weiter machen. Wenn man natürlich eine taste drückt hat man wieder 10 sek zeit.
5 Einträge, 1 Seite |