# man > Moose::Object

## NAME
    [Moose::Object](https://www.chedong.com/phpMan.php/perldoc/Moose%3A%3AObject/markdown) - The base object for Moose

## VERSION
    version 2.2200

## DESCRIPTION
    This class is the default base class for all Moose-using classes. When you "use Moose" in this
    class, your class will inherit from this class.

    It provides a default constructor and destructor, which run all of the "BUILD" and "DEMOLISH"
    methods in the inheritance hierarchy, respectively.

    You don't actually *need* to inherit from this in order to use Moose, but it makes it easier to
    take advantage of all of Moose's features.

## METHODS
  [Moose::Object](https://www.chedong.com/phpMan.php/perldoc/Moose%3A%3AObject/markdown)->new(%params|$params)
    This method calls "$class->BUILDARGS(@_)", and then creates a new instance of the appropriate
    class. Once the instance is created, it calls "$instance->BUILD($params)" for each "BUILD"
    method in the inheritance hierarchy.

  [Moose::Object](https://www.chedong.com/phpMan.php/perldoc/Moose%3A%3AObject/markdown)->BUILDARGS(%params|$params)
    The default implementation of this method accepts a hash or hash reference of named parameters.
    If it receives a single argument that *isn't* a hash reference it throws an error.

    You can override this method in your class to handle other types of options passed to the
    constructor.

    This method should always return a hash reference of named options.

  $object->does($role_name)
    This returns true if the object does the given role.

  $object->DOES($class_or_role_name)
    This is a Moose role-aware implementation of "DOES" in UNIVERSAL.

    This is effectively the same as writing:

      $object->does($name) || $object->isa($name)

    This method will work with Perl 5.8, which did not implement "[UNIVERSAL::DOES](https://www.chedong.com/phpMan.php/perldoc/UNIVERSAL%3A%3ADOES/markdown)".

  $object->dump($maxdepth)
    This is a handy utility for [Data::Dumpering](https://www.chedong.com/phpMan.php/perldoc/Data%3A%3ADumpering/markdown) an object. By default, there is no maximum depth.

  $object->DESTROY
    A default destructor is provided, which calls "$instance->DEMOLISH($in_global_destruction)" for
    each "DEMOLISH" method in the inheritance hierarchy.

## BUGS
    See "BUGS" in Moose for details on reporting bugs.

## AUTHORS
    *   Stevan Little <<stevan@cpan.org>>

    *   Dave Rolsky <<autarch@urth.org>>

    *   Jesse Luehrs <<doy@cpan.org>>

    *   Shawn M Moore <<sartak@cpan.org>>

    *   יובל קוג'מן (Yuval Kogman) <<nothingmuch@woobling.org>>

    *   Karen Etheridge <<ether@cpan.org>>

    *   Florian Ragwitz <<rafl@debian.org>>

    *   Hans Dieter Pearcey <<hdp@cpan.org>>

    *   Chris Prather <<chris@prather.org>>

    *   Matt S Trout <<mstrout@cpan.org>>

## COPYRIGHT AND LICENSE
    This software is copyright (c) 2006 by Infinity Interactive, Inc.

    This is free software; you can redistribute it and/or modify it under the same terms as the Perl
    5 programming language system itself.

