2013-09-06 3 views
0

Я использую Term :: Screen для ввода строки в xterm.capture, get line from terminal with perl Term :: Экранный модуль или escape-последовательности

$scr->at(2,0)->puts("this is some stuff"); 

Но я хотел бы, чтобы захватить, получить 2-ю линию (не смещение 0 до EOL), что-то вроде этого:

$scr->at(2,0)->gets(); 

Или как может последовательность побег сделать?

Благодарим за помощь!

+1

Документов на 'Term :: Screen' говорят:«Это не является заменой для проклятий - он не имеет памяти» , Значит, вы, возможно, хотите «Curses»? –

ответ

0

Не знаю, правильно ли я вас понимаю. Из вашего образца кода я беру: вы хотите напечатать строку 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'");