Теперь проедем анализ программы модуля Chatbot::Eliza::Polite.
1) Настройка модуля. Загружается модуль Chatbot::Eliza, и текущий пакет объявляется его подклассом путем размещения имени родительского модуля в массиве @ISA.
2) Метод welcome (). Данный метод содержит копию начальной части старого метода command_interfасе (). Он устанавливает для двух приглашений (первое выводится перед высказываниями психотерапевта, а второе — перед строками, вводимыми пользователей подходящие значения по умолчанию, а затем возвращает приветствие, выбранное случайным образом из внутреннего списка. В этой строке добавляется приглашение к вводу информации пользователя.
3) Метод one_line(). Этот метод принимает в качестве входной информации строку, введенную пользователем, и возвращает ответ. Выполнение метода начинается с проверки заключительных фраз в информации, введенной пользователем. Если в этой строке содержится одна из таких фраз, то из списка фраз, завершающих диалог случайным образом выбирается текст, выражающий восхищение результатами общения с пользователем, устанавливается внутренний флажок, указывающий, что пользователь завершил работу, и возвращается ответ. В ином случае вызывается унаследованный метод transform() для преобразования ответа пользователя в подходящее многозначительное высказывание психотерапевта, и готовый ответ возвращается вместе со следующим приглашением.
4) Метод done(). В этом методе выполняется проверка того, был ли установлен внутренний флажок выхода в методе one_line (), и возвращается истинное значение, если пользователь желает закончить работу.