На основе этих трех способов создан ряд других методов включая выполнение предварительного ветвления, создание пулов потоков и применение неблокирующеего ввода-вывода. Кроме них, существуют менее распространенные способы обеспечения одновременной работы, в том числе ввод-вывод, управляемый сигналами, асинхронный ввод-вывод и др. Эти способы здесь не рассматриваются; дополнительную информацию о них можно получить в специальной литературе.
Психотерапевтический сервер.
В основном рабочем примере, рассматриваемом здесь и далее, используется модуль Chatbot::Eliza. Это — разработанная Джоном Ноллном (John Nolan) с применением исключительно только средств языка Perl замечательная имитация классической программы Джозефа Вейценбаума (Joseph Weizenbaum), моделирующей работу психотерапевта. Модуль Chatbot::Eliza действует очень просто. Он принимает строку ввода от пользователя, преобразует ее в соответствии с тщательно продуманным набором правил преобразования и возвращает пользователю полученный результат в форме ответа. В результате у пользователя создается впечатление, что он беседует с психоаналитиком школы Фрейда, правда, немного напоминающим робота.
Модуль Chatbot::Eliza может быть получен из архива CPAN. Он очень прост в использовании. Модуль загружается, создается новый объект Chatbot::Elizat помощью метода new (), а затем вызывается метод cornmand_interface () объекта. Этот метод проводит диалог с пользователем, считывая данные со стандартного устройства ввода и выводя свои ответы на стандартное устройство вывода. Для проведения психотерапевтического сеанса достаточно вызвать на выполнение строки кода, из примера в сопроводительной модуль документации.