in reply to Re: How to code Pascal's keypressed function in Perl
in thread How to code Pascal's keypressed function in Perl

If you have a while loop that is spinning and you don't want to prompt the user for any key to be pressed such as with <STDIN> and you don't want to use Term:ReadKey module but to silently break out when she hits ENTER key use the following 3 line function called "keystroke()" where $j variable will change from 0 to 1 when the ENTER key is pressed:

while (true) {
   ...
   if (&keystroke == 1) {
     last;
   }
   ...
}

sub keystroke {
   $i = '';
   vec($i, fileno(STDIN), 1) = 1;
   $j = select ($i, undef, undef, 0);
}
  • Comment on Re^2: How to code Pascal's keypressed function in Perl