Захватить, получить строку из терминала с помощью 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'");
Другие вопросы по тегам