Строки 13-26. Создание приемного сокета и начало цикла приема. Сервер создает приемный сокет и входит в цикл accept (). При получении каждого входящего запроса на установление соединения порождается дочерний процесс, который выполняет подпрограмму handle_connection (). После завершения этой подпрограммы дочерний процесс прекращает свое существование.
Строки 27-49. (Подпрограмма handle_connection (). Данная подпрограмма отвечает за управление объектом Техt::Travesty, чтение клиентских команд из сокета и их передачу соответствующей подпрограмме. Выполнение подпрограммы начинается с вызова функции fcntl (,) для установки владельца сокета с тем, чтобы процесс мог принимать срочные сигналы. В случае успешного выполнения этой операции устанавливаются символы завершения конца строки равными паре crlf с использованием оператора local для динамического ограничения области определения этого значения в глобальной переменной $/ текущим блоком и всеми вызываемыми в нем подпрограммами.
Неотъемлемым лицом любой компании конечно же является ее логотип, который в полной мере должен отражать всю направленность ее деятельности. Процесс разработки логотипа дело очень ответственное и требующее для успеха не шаблонного подхода. Таким креативным агентством является PUZINAS, которое существует на рынке данных услуг более пяти лет.
Теперь создается новый объект Text::travesty и строится оболочка IO::Getline для сокета. Как было описано ранее, модуль IO::Getline предусматривает неблокирующее поведение по умолчанию. В этом приложении неблокирующие средства не используются, поэтому после создания оболочки блокировка снова должна быть разрешена. Оболочка IO::Getline является глобальной для пакета с тем, чтобы обработчик URG мог ее найти; поскольку в данном сервере для обслуживания каждого входящего соединения используются разные процессы, такое применение глобальной переменной не вызывает проблем. После завершения инициализации клиенту выдается заголовок приглашения с использованием кода результата 200.