---
name: "Class::MakeMethods::Basic"
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::Basic"
---

# Class::MakeMethods::Basic(3pm)

Make really simple methods

## NAME

Class::MakeMethods::Basic - Make really simple methods

## SYNOPSIS

```
  package MyObject;
  use Class::MakeMethods::Basic::Hash (
    'new'     => [ 'new' ],
    'scalar'  => [ 'foo', 'bar' ]
  );
  package main;

  my $obj = MyObject->new( foo => "Foozle", bar => "Bozzle" );
  print $obj->foo();
  $obj->bar("Barbados");
```

## DESCRIPTION

This document describes the various subclasses of Class::MakeMethods included under the Basic::\* namespace, and the method types each one provides.

The Basic subclasses provide stripped-down method-generation implementations.

Subroutines are generated as closures bound to each method name.

### Calling Conventions

When you `"use"` a subclass of this package, the method declarations you provide as arguments cause subroutines to be generated and installed in your module. You can also omit the arguments to `"use"` and instead make methods at runtime by passing the declarations to a subsequent call to `"make()"`.

You may include any number of declarations in each call to `"use"` or `"make()"`. If methods with the same name already exist, earlier calls to `"use"` or `"make()"` win over later ones, but within each call, later declarations superceed earlier ones.

You can install methods in a different package by passing `"-TargetClass => `*package*`"` as your first arguments to `"use"` or `"make"`.

See "USAGE" in Class::MakeMethods for more details.

### Declaration Syntax

The following types of declarations are supported:

- •

  *generator\_type* =\> '*method\_name*'

- •

  *generator\_type* =\> '*name\_1* *name\_2*...'

- •

  *generator\_type* =\> \[ '*name\_1*', '*name\_2*', ...\]

For a list of the supported values of *generator\_type*, see "BASIC CLASSES" in Class::MakeMethods::Docs::Catalog, or the documentation for each subclass.

For each method name you provide, a subroutine of the indicated type will be generated and installed under that name in your module.

Method names should start with a letter, followed by zero or more letters, numbers, or underscores.

## SEE ALSO

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

For distribution, installation, support, copyright and license  information, see Class::MakeMethods::Docs::ReadMe.
