---
name: "Class::MakeMethods::Emulator::accessors"
section: "3pm"
platform: "linux"
package: "libclass-makemethods-perl"
version: "1.01-7"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Class::MakeMethods::Emulator::accessors"
---

# Class::MakeMethods::Emulator::accessors(3pm)

Emulate the accessors module

## NAME

Class::MakeMethods::Emulator::accessors - Emulate the accessors module

## SYNOPSIS

```
  package Foo;
  use Class::MakeMethods::Emulator::accessors qw( foo bar baz );

  my $obj = bless {}, 'Foo';

  # generates chaining accessors:
  $obj->foo( 'hello ' )
      ->bar( 'world' )
      ->baz( "!\n" );

  print $obj->foo, $obj->bar, $obj->baz;
```

This module also defines subpackages for the classic and chaining subclasses:

```
  package Bar;
  use Class::MakeMethods::Emulator::accessors;
  use Class::MakeMethods::Emulator::accessors::classic qw( foo bar baz );
  my $obj = bless {}, 'Bar';
  # always return the current value, even on set:
  $obj->foo( 'hello ' ) if $obj->bar( 'world' );
  print $obj->foo, $obj->bar, $obj->baz( "!\n" );
```

## DESCRIPTION

This module emulates the functionality of the accessors module, using Class::MakeMethods to generate similar methods.

In particular, the following lines are equivalent:

```
  use accessors 'foo';
  use Class::MakeMethods::Template::Hash 'scalar --get_set_chain' => 'foo';
  use accessors::chained 'foo';
  use Class::MakeMethods::Template::Hash 'scalar --get_set_chain' => 'foo';
  use accessors::classic 'foo';
  use Class::MakeMethods::Template::Hash 'scalar' => 'foo';
```

You may use this module directly, as shown in the SYNOPSIS above,

Furthermore, you may call `"use Class::MakeMethods::Emulator::accessors` `'-take_namespace';"` to alias the accessors namespace to this package, and subsequent calls to the original package will be transparently handled by this emulator. To remove the emulation aliasing, call `"use Class::MakeMethods::Emulator::accessors '-release_namespace'"`.  The same mechanism is also available for the classic and chained subclasses.

**Caution:** This affects **all** subsequent uses of the accessors module in your program, including those in other modules, and might cause unexpected effects.

## SEE ALSO

See Class::MakeMethods for general information about this distribution.

See Class::MakeMethods::Emulator for more about this family of subclasses.

See accessors for documentation of the original module.
