in reply to Sleep until keypress
More or less what you are after ;-)
use Term::ReadKey; ReadMode 4; # raw mode END{ ReadMode 0 } # restore mode my @data = map{"$_\tjaph\n"}1..100; my ($page, $line, $key) = (20,0,''); clear_screen(); while( $line < @data ) { if ($line and 0 == $line % $page) { printf "--- More or Less (%d%%) ---\n", int(100*$line/@data); 1 while not defined ($key=ReadKey(0.5)); $line -= 2*$page if $key =~ m/b/i; $line = 0 if $line < 0; exit if $key =~ m/q/i; clear_screen(); } print $data[$line++]; } sub clear_screen { system($^O =~ m/Win32/ ? 'cls' : 'clear') }
|
|---|