Захватить, получить строку из терминала с помощью Perl Term::Screen module или escape-последовательностей
Я использую Term::Screen, чтобы поместить строку в xterm.
$scr->at(2,0)->puts("this is some stuff");
Но я хотел бы захватить, получить 2-ю строку (смещение 0 до eol), что-то вроде этого:
$scr->at(2,0)->gets();
Или как это может сделать escape-последовательность?
Спасибо за вашу помощь!
1 ответ
Не уверен, правильно ли я вас понимаю. Из вашего примера кода я беру: Вы хотите напечатать в строке 2, затем навести курсор на начало той же строки и получить пользовательский ввод до EOL? В любом случае, я бы рекомендовал использовать Term:: Screen:: ReadLine, а не Term::Screen. Если я вас правильно понял, я полагаю, что это должно быть в духе следующего:
#!/usr/bin/perl
use strict;
use Term::Screen::ReadLine;
my $t = Term::Screen::ReadLine->new;
$t->clrscr;
#$t->at(2, 0)->puts("this is some stuff");
my $in = $t->readline(ROW => 2, COL => 0, OVERWRITE => 0, LINE => "this is some stuff");
$t->at(3, 0)->puts("You wrote '$in'");