Строки 5, 6. Перегрузка оператора двойных кавычек. Одной из самых привлекательных особенностей языка Perl является возможность выполнять перегрузку некоторых операторов с тем, чтобы вызов нужного метода осуществлялся автоматически. При использовании класса ChatObjects::User было бы удобно заменять объект псевдонимом пользователя каждый раз, когда этот объект применяется в строковом контексте. Это позволило бы автоматически преобразовывать строку “Your name is $user” в текст “Your name is rufus”, а не “Your name is ChatObjects::User=HASH(0x82b8 lbO)”.
Для этого используется псевдокомментарий overload, который сообщает интерпретатору Perl, чтобы он преобразовывал объект в строку, заключенную в двойные кавычки, путем вызова его метода nickname () и возвращался к поведению, предусмотренному по умолчанию, при обработке всех прочих операторов.
Строки 7-9. Установка глобальных переменных пакета. Модуль должен предусматривать поиск зарегистрированных пользователей по псевдониму и адресу клиента. Для отслеживания информации о пользователях применяются две глобальные переменные. В хеше %nicknames объекты пользователей хранятся под ключами, соответствующими псевдонимам пользователей. С другой стороны, ключами хеша %addresses, под которыми хранятся объекты пользователей, являются упакованные адреса клиентов этих пользователей. Первоначально эти хеши пусты.
Строки 10-22. Метод new (). Данный метод создает новые объекты ChatObjects::User. Он принимает три параметра: упакованный адрес клиентского компьютера пользователя, псевдоним пользователя и объект ChatObjects::Comm, который должен применяться для отправки сообщений пользователю, например, информации со страницы http://www.luks-m.ru/uslugi/buklety/ .