This document introduces object oriented programming in Perl using Moose. It discusses what objects are, how they are commonly created with Moose, and how Moose handles attributes and delegation. Moose provides features like type constraints and immutability out of the box to reduce code and improve performance compared to implementing object oriented code without Moose. The document also covers testing objects and using roles to take on features from multiple packages.