Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Problem running code until a user hits a key

by jaldhar (Vicar)
on Dec 30, 2007 at 15:45 UTC ( #659614=note: print w/ replies, xml ) Need Help??


in reply to Problem running code until a user hits a key

As the POD says, when you use ReadKey with 0 or higher, it does the equivalent of getc(3) which is buffered. You need to use non-buffered mode to do what you want. (Also when your program exits, you need to put the terminal back the way it was. I use an END block to allow for abnormal termination.)

Try this:

#!/usr/bin/perl use strict; use warnings; use diagnostics; use Term::ReadKey; my $count = 0; my $char = undef; ReadMode('cbreak'); while (!defined $char) { $char = ReadKey(-1); $count++; } print "$count\n"; # Put the terminal back the way you found it. END { ReadMode('restore'); }

--
જલધર


Comment on Re: Problem running code until a user hits a key
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://659614]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (7)
As of 2015-07-05 21:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (68 votes), past polls