Строки 1-3. Загрузка модулей. Работа начинается с загрузки модулей ChatObjects::User и ChatObjects::ChatCodes.
Строки 4-7. Перегрузка строкового оператора двойных кавычек. Как и в модуле ChatObjects::User, желательно иметь возможность преобразовывать объекты каналов непосредственно в названия этих каналов. Выполняется перегрузка строкового оператора двойных кавычек с тем, чтобы он вызывал метод title () объекта, и интерпретатору Perl передается указание, чтобы он руководствовался правилами поведения, предусмотренными по умолчанию, при выполнении других операторов. Здесь также определена глобальная переменная пакета % channels. Она будет содержать применяемый в операциях поиска окончательный список объектов каналов, ключами которого являются названия каналов.
Строки 8-16. Конструктор объекта. Для создания нового экземпляра класса ChannelObjects::Channel вызывается метод класса new (). Метод принимает название и описание нового канала, а также записывает эти данные в хеш, включенный в пространство имен модуля с помощью функции bless (), наряду с пустым анонимным хешем, который в конечном итоге будет содержать список пользователей, подключенных к каналу. Выполняется запись нового объекта в хеш %channels и его возврат.
Строки 17-22. Поиск канала по названию. Метод lookup () возвращает объект ChatObjects::Channel, имеющий указанное название. Название выбирается из массива параметров подпрограммы и используется для доступа по ключу к хешу %channels; Метод channels выполняет выборку всех названий каналов, возвращая ключи хеша channels.