---
name: "Moose::Object"
section: "3pm"
platform: "linux"
package: "perl-moose"
version: "2.4001-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Moose::Object"
---

# Moose::Object(3pm)

The base object for Moose

## NAME

Moose::Object - The base object for Moose

## VERSION

version 2.4001

## 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-\>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-\>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"`.

### $object-\>dump($maxdepth)

This is a handy utility for Data::Dumpering 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.
