PERL: БИБЛИОТЕКА ПРОГРАММИСТА



              

PERL: БИБЛИОТЕКА ПРОГРАММИСТА - стр. 512



542   Глава 15 • Пользовательские интерфейсы

В списковом контексте expect возвращает список из пяти элементов. Первый элемент определяет номер совпавшей строки или шаблона (идентично возвраща­емому значению в скалярном контексте). Второй элемент — строка с описанием причины возврата из expect. При отсутствии ошибок второй аргумент равен undef. Возможные варианты ошибок: "1: TIMEOUT", "2: EOF', "3: spawn id(...) died" и "4: . " (смысл этих сообщений описан в Expect(3)). Третий элемент в возвра­щаемом списке expect равен совпавшей строке. Четвертый элемент — текст до совпадения, а пятый — текст после совпадения.

Передача данных программе, находящейся под управлением Expect, сводится к простейшему вызову print. Единственная трудность состоит в том, что термина­лы, устройства и сокеты отличаются по тем последовательностям, которые они передают и принимают в качестве разделителя строк, — мы покинули убежище стандартной библиотеки ввода/вывода С, поэтому автоматическое преобразова­ние в "\гГ не происходит. Рекомендуем начать с ' \г"; если не получится, попробуй­те '\п   и "\г\п".

После завершения работы с запущенной программой у вас есть три возможно­сти. Во-первых, можно продолжить работу с главной программой; вероятно, за­пущенная программа будет принудительно завершена по завершении главной программы. Однако в этом случае плодятся лишние процессы. Во-вторых, если запущенная программа должна нормально завершиться после вывода всех дан­ных или по некоторому внешнему условию (как, например, telnet при выходе из удаленного командного интерпретатора), вызовите метод soft_close. Если за­пущенная программа будет работать бесконечно (например, tail -/), вызовите ме­тод hard_close; он уничтожает запущенный процесс.

> Смотри также-------------------------------------------------------------------------

Документация по модулям Expect, IO:Pty и IO:Stty от CPAN.

15.14. Создание меню с помощью Тк




Содержание  Назад  Вперед