Шукати в цьому блозі

середа, 8 лютого 2012 р.

Perl: как сменить позицию курсора в окне терминала?

Используем Term::Cap (описание) и POSIX (описаниеPOSIX::Termios).
#!/usr/bin/perl -w

use strict;
use Term::Cap;

my $ospeed = 9600;

eval {
    # Получиь скорость вывода на терминал
    require POSIX;
    my $termios = new POSIX::Termios;
    $termios->getattr;
    $ospeed = $termios->getospeed;
};

# Инициализация терминала
my $terminal = Term::Cap->Tgetent({ TERM => undef, OSPEED => $ospeed });
$terminal->Trequire(qw/cm cl rc sc/);

# Запомнить позицию курсора
print $terminal->Tputs('sc', 1);

# Очистить экран
print $terminal->Tputs('cl', 1);

foreach my $x (1..10) {
    foreach my $y (1..10) {
        # Переместить курсор в нужную позицию
        my $goto = $terminal->Tgoto('cm', $x * 5, $y);
        print $goto, $x * $y;
    }
}

# Вернуть позицию курсора
print $terminal->Tputs('rc', 1);

Немає коментарів: