Scroll to navigation

Class::MOP::Method::Accessor(3pm) User Contributed Perl Documentation Class::MOP::Method::Accessor(3pm)


Class::MOP::Method::Accessor - Method Meta Object for accessors


version 2.2013


    use Class::MOP::Method::Accessor;

    my $reader = Class::MOP::Method::Accessor->new(
        attribute     => $attribute,
        is_inline     => 1,
        accessor_type => 'reader',

    $reader->body->execute($instance); # call the reader method


This is a subclass of "Class::MOP::Method" which is used by "Class::MOP::Attribute" to generate accessor code. It handles generation of readers, writers, predicates and clearers. For each type of method, it can either create a subroutine reference, or actually inline code by generating a string and "eval"'ing it.


This returns a new "Class::MOP::Method::Accessor" based on the %options provided.
  • attribute

    This is the "Class::MOP::Attribute" for which accessors are being generated. This option is required.

  • accessor_type

    This is a string which should be one of "reader", "writer", "accessor", "predicate", or "clearer". This is the type of method being generated. This option is required.

  • is_inline

    This indicates whether or not the accessor should be inlined. This defaults to false.

  • name

    The method name (without a package name). This is required.

  • package_name

    The package name for the method. This is required.

Returns the accessor type which was passed to "new".
Returns a boolean indicating whether or not the accessor is inlined.
This returns the Class::MOP::Attribute object which was passed to "new".
The method itself is generated when the accessor object is constructed.


  • Stevan Little <>
  • Dave Rolsky <>
  • Jesse Luehrs <>
  • Shawn M Moore <>
  • יובל קוג'מן (Yuval Kogman) <>
  • Karen Etheridge <>
  • Florian Ragwitz <>
  • Hans Dieter Pearcey <>
  • Chris Prather <>
  • Matt S Trout <>


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.

2020-07-23 perl v5.30.3