Как получить доступ к содержимому буфера модуля Expect в Perl

Я использую ожидание для автоматизации приложений на основе терминала. Я буду отправлять данные в зависимости от результата от команды «ожидать». Я знал, что ожидание, при выполнении сопоставления строк все несогласованные шаблоны строк сохраняются в буфере. Например, $ expect_out (0, строка) используется для хранения ожидаемой строки, а $ expect_out (buffer) содержит все несовпадающие строковые шаблоны, возникшие до предыдущей команды.

Я хочу знать, есть ли способ получить доступ к этим буферам ожидания, например, скопировать содержимое буфера ожидания в некоторую переменную, как показано ниже.

$mybuffer = $expect_out(buffer);

но приведенный выше оператор фактически выдает ошибку "синтаксическая ошибка в строке 72 perl_app_hh.pl, рядом с" $ expect_out (""

Я просто хочу скопировать содержимое ожидаемого буфера в переменную. Пожалуйста, помогите мне в этом вопросе.


person chaitu    schedule 16.04.2012    source источник
comment
Все вышеперечисленное должно работать с использованием модуля expect для perl от cpan.   -  person chaitu    schedule 16.04.2012
comment
$expect_out(0,string) и $expect_out(buffer) не являются допустимым синтаксисом Perl. Можете ли вы показать нам свой существующий код, который вы хотите изменить?   -  person ysth    schedule 16.04.2012
comment
print (\ n \ n \ n ****** О печати ожидайте содержимое буфера ... ************ \ n \ n \ n \ n); # $ mybuffer = $ expect_out (буфер); print (\ n Ожидаемое содержимое буфера, $ buffer, \ n); распечатать $ expect_out (0, строка);   -  person chaitu    schedule 16.04.2012


Ответы (1)


Вам нужно будет прочитать документацию по модулю Expect. . $expect(buffer) не является допустимым Perl.

$exp = Expect->spawn(...);
$exp->send(...);
$buffer = $exp->before();
person glenn jackman    schedule 16.04.2012