9 Einträge, 1 Seite |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/usr/bin/perl use strict; use warnings; alarm(10); my $input; eval { local $SIG{ALRM} = sub { die "alarm\n" }; print "Bitte etwas eingeben: "; $input = <STDIN>; alarm(0); }; chomp $input; if ($@) { print "Timeout beim Einlesen\n" if $@ =~ m/^alarm/; exit 1; } else { print qq(User hat "$input" eingegeben.\n); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#!/usr/bin/perl use strict; use warnings; use IO::Select; use IO::Handle; my $select = IO::Select->new; $select->add( \*STDIN ); STDIN->blocking(0); STDOUT->autoflush(1); print "Bitte etwas eingeben: "; if ( my @ready = $select->can_read(10) ) { for my $fh ( @ready ) { while ( my $line = <$fh> ) { chomp $line; print "Empfangen: $line\n"; } } } else { print "Timeout\n"; }
Quoteselect Only implemented on sockets. (Win32, VMS)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#!/usr/bin/perl use strict; use warnings; use IO::Handle; STDIN->blocking(0); print "Bitte etwas eingeben: "; my $input; for( 0 .. 100 ) { $input = <STDIN>; select undef, undef, undef, 0.1; last if $input; } if ( $input ) { chomp $input; print qq(User hat $input eingegeben\n); } else { print qq(Timeout\n); }
9 Einträge, 1 Seite |