Во многих случаях функция print_record() может представлять собой подпрограмму, которая определена в пакете объекта. Здесь все структурировано, но некоторым покажется, что это не так захватывает, как онлайн игра массовые беспорядки . Если предположить, что объект был создан в модуле BigDatabase, то приведенная выше конструкция - просто более удобный способ записи следующего выражения: BigDatabase::print_record($object).
Однако язык Perl допускает еще более тонкую трактовку этой программной конструкции, и определение метода print_record() может фактически находиться в другом модуле, от которого наследует методы текущий модуль. Описание принципов реализации этой программной конструкции выходит за рамки настоящего введения, и его можно найти в документах POD, а также в справочной литературе по языку Perl.
Для создания объекта необходимо вызвать один из его конструкторов. Конструктор - это вызов метода, в котором должно быть указано имя модуля. Например, для создания нового объекта BigDatabase необходимо выполнить следующее: $object = BigDatabase->new(). Конструкторы, которые представляют собой частный случай метода класса, часто именуются new(). Однако для их обозначения может применяться любое имя подпрограммы. Опять-таки, этот синтаксис немного обманчив. В большинстве случаев эквивалентный вызов может выглядеть иным образом. Однако это - не то же самое, поскольку методы класса также могут быть унаследованы от других классов и получить в свое распоряжение методы класса родителя.