Модуль ChatObjects::ChatCodes требует простейших корректировок. Здесь просто определена новая константа STILL_HERE и добавлена к списку @EXPORTS.
Подкласс ChatObjects::TimedUser
Ниже описан ChatObjects::TimedUser — простой подкласс класса ChatObjects::User. В классе ChatObjects::TimedUser перекрыт первоначальный метод, new () для добавления переменной экземпляра stillhert, новый метод still_here () обновляет значение этой переменной, записывая в нее текущее время, а метод inactivity_interval () возвращает число секунд, прошедших с момента последнего вызова метода still_here ().
Модуль ChatObjects::TimedUser будет применяться в серверной программе вместо модуля ChatObjects::User. Откорректирована программа chat_client.pl, ниже описаны изменения, внесенные в для того, чтобы она периодически выдавала сообщения о событиях STILL_HERE. В листинге ниже приведена первая часть откорректированного сценария (остальная часть идентична первоначальной программе).
Откорректированная программа chat_server.pl
В листинге приведен откорректированный сценарий chat_server.pl, позволяющий обеспечить автоматическое отключение от системы недееспособных клиентов. Сценарий chat_server.pl, выполняет периодическую проверку наличия неактивных клиентов. Проведем анализ программы.
Строка 6. Вызов модуля ChatObjects::TimedUser. Вызывается модуль ChatObjects::TimedUser для получения доступа к его методам still_here () и inactivity_interval () и обнаружения неактивных клиентов, к примеру, отключенных от канала с обсуждениями про амфенольный кабель .