Строки 44-50. Обработка сообщения о выходе пользователя из системы. При выходе пользователя из системы вызывается метод logout (). Этот метод удаляет пользователи из всех каналов, к которым он был подключен, а затем удаляет соответствующий объект из хешей %nicknames и %addresses. Эти действия приводят к уничтожению всех ссылок на объекте пользователя, в результате чего интерпретатор Perl уничтожает объект и освобождает занимаемое им место в памяти.
Строки 51-65. Метод join(). Этот метод вызывается, когда пользователь выдает запрос на подключение к каналу, например, к обсуждению темы - как выполнить прием платежей на сайте . Ему передается название канала.
Выполнение метода join() начинается с поиска выбранного объекта канала с использованием метода lookup() объекта ChatObjects::Channel. Если не будет найден ни один канал с указанным названием, выдается сообщение об ошибке путем вызова метода send () объекта. В ином случае вызывается метод channels () объекта для выборки текущего списка каналов, к которым подключился данный пользователь. Если пользователь в настоящее время еще не подключен к данному каналу, вызывается метод add () объекта канала для отправки другим пользователям извещения о том, что к каналу подключается новый пользователь. Если пользователь уже является абонентом канала, запись канала удаляется из текущей позиции массива каналов с тем, чтобы он был перемещен в начало списка каналов в следующей части кода. Объект канала обозначается как текущий путем перемещения его на первое место в массиве каналов, а клиенту отправляется сообщение о событии join_ack.