2
#!/usr/bin/env perl
use warnings;
use 5.014;
use Term::Cap;
use POSIX;
my $termios = new POSIX::Termios;
$termios->getattr;
my $ospeed = $termios->getospeed;
my $terminal = Tgetent Term::Cap { TERM => undef, OSPEED => $ospeed };
$terminal->Trequire("ku"); # move cursor up
my $UP = $terminal->Tputs("ku");
my $t = 500;
while ($t > 0) {
printf "Hour: %d \n", $t/3600;
printf "Minute: %d \n", ($t/60)%60;
printf "Second: %d \n", $t%60;
print $UP,$UP,$UP;
sleep 5;
$t -= 5;
}
を動作しません。私は、この(ここで見つける:How can I update values on the screen without clearing it in Perl?)をしようとすると、私はこの出力を得る:ターム::キャップ:「アップキー」は
Hour: 0
Minute: 8
Second: 20
AAAHour: 0
Minute: 8
Second: 15
AAAHour: 0
Minute: 8
Second: 10
AAAHour: 0
Minute: 8
Second: 5
はkey-up
がないことを、この平均値をい私の端末で作業しますか?
キーアップコードは問題ありませんが、何らかの理由でストリームを画面に配置すると予想されます。コードを解釈するために他端には何もない。代わりにCursesを使用してください。 – daxim
@daxim、すべてCursesは、Term :: Capと同じ制御コードを送信します。これは単なる上位レベルのライブラリです。本当の問題は彼が間違ったコードを送っていることです。 – cjm