Class::MakeMethods::Docs::Catalog - List of Makable Method Types
This document lists the various subclasses of Class::MakeMethods included in
this distribution, and the method types each one provides.
See the documentation for each implementation for more details about the
features it provides.
For each class, a parenthetical comment indicates whether the methods it
generates are applicable to individual blessed objects (Instances), to class
data (Global), or both (Any) =head2 Scoping
The final part of the name of a method-generating subclass typically indicates
the scope or applicability of the methods it generates
- Hash
- For object instances based on blessed hashes with named
values.
- Array
- For object instances based on blessed arrays with
positional values.
- Scalar
- For object instances based on blessed scalars with a single
value.
- InsideOut
- For any object instance regardless of underlying data
type.
- Ref
- For any object instance regardless of underlying data
type.
- Inheritable
- For data which can be set at the class, subclass, or
instance level.
- Class
- For class data shared by all instances but different for
each subclass
- ClassVar
- For class data shared by all instances but different for
each subclass
- ClassInherit
- For class data shared by all instances but different for
each subclass
- Global
- For global data shared by a class and all its instances and
subclasses
- PackageVar
- For global data shared by a class and all its instances and
subclasses
- Universal
- # General method types that are widely applicable
This table shows which scopes are available in each generator family:
SCOPING Basic Standard Evaled Composite Template
Hash + + + + +
Array + + + +
Scalar +
InsideOut +
Ref +
Inheritable + + +
Class +
ClassVar +
ClassInherit +
Global + + + +
PackageVar +
Universal + +
This table shows which types of methods are typically available in each
generator family:
METHOD Basic Standard Evaled Composite Template
new + + + +
scalar + + + +
string +
string_index +
number +
boolean +
boolean_index +
bits +
array + + + +
struct +
hash + + + +
hash_of_arrays +
tiedhash +
object + + +
instance +
array_of_objects +
code +
code_or_scalar +
Methods for objects based on blessed hashes. See Class::MakeMethods::Basic::Hash
for details.
- •
- new: create and copy instances
- •
- scalar: get and set scalar values in each instance
- •
- array: get and set values stored in an array referred to in
each instance
- •
- hash: get and set values in a hash referred to in each
instance
Methods for manipulating positional values in arrays. See
Class::MakeMethods::Basic::Array for details.
- •
- new: create and copy instances
- •
- scalar: get and set scalar values in each instance
- •
- array: get and set values stored in an array referred to in
each instance
- •
- hash: get and set values in a hash referred to in each
instance
Global methods are not instance-dependent; calling them by class name or from
any instance or subclass will consistently access the same value. See
Class::MakeMethods::Basic::Global for details.
- •
- scalar: get and set a global scalar value
- •
- array: get and set values in a global array
- •
- hash: get and set values in a global hash
Methods for objects based on blessed hashes. See
Class::MakeMethods::Standard::Hash for details.
- •
- new: create and copy instances
- •
- scalar: get and set scalar values in each instance
- •
- array: get and set values stored in an array referred to in
each instance
- •
- hash: get and set values in a hash referred to in each
instance
- •
- object: access an object referred to by each instance
Methods for manipulating positional values in arrays. See
Class::MakeMethods::Standard::Array for details.
- •
- new: create and copy instances
- •
- scalar: get and set scalar values in each instance
- •
- array: get and set values stored in an array referred to in
each instance
- •
- hash: get and set values in a hash referred to in each
instance
- •
- object: access an object referred to by each instance
Methods for manipulating global data. See Class::MakeMethods::Standard::Global
for details.
- •
- scalar: get and set global scalar
- •
- array: get and set values stored in a global array
- •
- hash: get and set values in a global hash
- •
- object: global access to an object ref
Methods for manipulating data which may be overridden per class or instance.
Uses external data storage, so it works with objects of any underlying data
type. See Class::MakeMethods::Standard::Inheritable for details.
- •
- scalar: get and set scalar values for each instance or
class
Methods for objects based on blessed hashes. See
Class::MakeMethods::Composite::Hash for details.
- •
- new: create and copy instances
- •
- scalar: get and set scalar values in each instance
- •
- array: get and set values stored in an array referred to in
each instance
- •
- hash: get and set values in a hash referred to in each
instance
- •
- object: access an object referred to by each instance
Methods for manipulating positional values in arrays. See
Class::MakeMethods::Composite::Array for details.
- •
- new: create and copy instances
- •
- scalar: get and set scalar values in each instance
- •
- array: get and set values stored in an array referred to in
each instance
- •
- hash: get and set values in a hash referred to in each
instance
- •
- object: access an object referred to by each instance
Methods for manipulating global data. See Class::MakeMethods::Composite::Global
for details.
- •
- scalar: get and set global scalar
- •
- array: get and set values stored in a global array
- •
- hash: get and set values in a global hash
- •
- object: global access to an object ref
Methods for manipulating data which may be overridden per class or instance.
Uses external data storage, so it works with objects of any underlying data
type. See Class::MakeMethods::Composite::Inheritable for details.
- •
- scalar: get and set scalar values for each instance or
class
- •
- hook: create a subroutine intended to have operations added
to it
Methods for padding pre- and post-conditions to any class. See
Class::MakeMethods::Composite::Universal for details.
- •
- patch: add pre and post operations to an existing
subroutine
Meta-methods for any type of object. See
Class::MakeMethods::Template::Universal.
- •
- no_op - a method with an empty body
- •
- croak - a method which will croak if called
- •
- method_init - calls other methods from a list of method
name => argument pairs
- •
- forward_methods - delegates to an object provided by
another method
Methods for deep copies and comparisons. See Class::MakeMethods::Template::Ref.
- •
- clone: make a deep copy of an object instance
- •
- prototype: make new objects by cloning a typical
instance
- •
- compare: compare one object to another
The remaining subclasses inherit a similar collection of templates from
Template::Generic, and provide a different type of scoping or binding for the
functionality defined by the Generic template. See
Class::MakeMethods::Template::Generic for details.
The most commonly used implementation, for objects based on blessed hashes. See
Class::MakeMethods::Template::Hash.
- •
- new: create and copy instances
- •
- scalar: get and set scalar values in each instance
- •
- string: get and set string values in each instance
- •
- number: get and set numeric values in each instance
- •
- boolean: get and set boolean values in each instance
- •
- bits: get and set boolean values stored in a single value
in each instance
- •
- array: get and set values stored in an array referred to in
each instance
- •
- struct - methods for accessing values which are stored by
position in an array
- •
- hash: get and set values in a hash referred to in each
instance
- •
- tiedhash: get and set values in a tied hash referred to in
each instance
- •
- hash_of_arrays: for references to hashes of arrays
contained in each instance
- •
- object: set or access a reference to an object contained in
each instance
- •
- array_of_objects: manipulate an array of object references
within in each instance
- •
- code: set or call a function reference contained in each
instance
Methods for manipulating positional values in arrays. See
Class::MakeMethods::Template::Array.
- •
- new: create and copy array instances
- •
- scalar: get and set scalar values in a given array
position
- •
- string: get and set string values in a given array
position
- •
- number: get and set numeric values in a given array
position
- •
- boolean: get and set boolean values in a given array
position
- •
- builtin_isa: generates a wrapper around some builtin
function, cacheing the results in the object and providing a by-name
interface
For objects based on blessed scalars. See Class::MakeMethods::Template::Scalar.
Note that these objects can generally only have one value accessor method, as
all such accessors will refer to the same value.
- •
- new: create and copy instances
- •
- scalar: get and set scalar values in each instance
- •
- string: get and set a string value in each instance
- •
- number: get and set a numeric value in each instance
- •
- boolean: get and set a boolean value in each instance
- •
- bits: get and set boolean values stored in a single value
in each instance
- •
- code: set or call a function reference contained in each
instance
Stores values for objects in an external location hashed by identity. See
Class::MakeMethods::Template::InsideOut.
Note that while the below constructor creates and returns scalar references,
accessor methods can be created with this implementation for use with any type
of object.
- •
- new: create and copy instances
- •
- scalar: get and set scalar values associated with each
instance
- •
- string: get and set string values associated with each
instance
- •
- string_index: get and set string values associated with
each instance, and maintain an index of instances by value
- •
- number: get and set numeric values associated with each
instance
- •
- boolean: get and set boolean values associated with each
instance
- •
- boolean_index: get and set boolean values associated with
each instance, and maintain a list of items which have the flag set
- •
- bits: get and set boolean values stored in a single value
associated with each instance
- •
- array: get and set values stored in an array associated
with each instance
- •
- hash: get and set values in a hash associated with each
instance
- •
- code: set or call a function reference associated with each
instance
Global methods are not instance-dependent; calling them by class name or from
any instance will consistently access the same value. See
Class::MakeMethods::Template::Static.
- •
- scalar: get and set a global scalar value
- •
- string: get and set a global string value
- •
- number: get and set a global number value
- •
- boolean: get and set a global boolean value
- •
- array: get and set values in a global array
- •
- hash: get and set values in a global hash
- •
- tiedhash: get and set values in a global tied hash
- •
- hash_of_arrays: get and set values in a global hash of
arrays
- •
- object: set and access a global reference to an object
- •
- instance: set and access a global reference to an object of
the declaring class
- •
- code: set and access a global reference to a
subroutine.
PackageVar methods access a variable in the declaring package. Thus, they have
the same effect as Static methods, while keeping their value accessible via
the symbol table. See Class::MakeMethods::Template::PackageVar.
- •
- scalar: get and set a global scalar value
- •
- string: get and set a global string value
- •
- number: get and set a global number value
- •
- boolean: get and set a global boolean value
- •
- array: get and set values in a global array
- •
- hash: get and set values in a global hash
Class methods are similar to Static methods, except that each subclass and its
instances will access a distinct value. See
Class::MakeMethods::Template::Class.
- •
- scalar: get and set a class-specific scalar value
- •
- string: get and set a class-specific string value
- •
- number: get and set a class-specific number value
- •
- boolean: get and set a class-specific boolean value
- •
- array: get and set values in a class-specific array
- •
- hash: get and set values in a class-specific hash
ClassVar methods access a variable in the package on which they are called.
Thus, they have the same effect as Class methods, while keeping their value
accessible via the symbol table, like PackageVar. See
Class::MakeMethods::Template::ClassVar.
- •
- scalar: get and set a class-specific scalar value
- •
- string: get and set a class-specific string value
- •
- number: get and set a class-specific number value
- •
- boolean: get and set a class-specific boolean value
- •
- array: get and set values in a class-specific array
- •
- hash: get and set values in a class-specific hash
ClassInherit methods are an intermediate point between Static and Class methods;
subclasses inherit their superclass's value until they set their own value,
after which they become distinct. See
Class::MakeMethods::Template::ClassInherit.
- •
- scalar: get and set an inheritable class-specific scalar
value
- •
- string: get and set an inheritable class-specific string
value
- •
- number: get and set an inheritable class-specific number
value
- •
- boolean: get and set an inheritable class-specific boolean
value
- •
- array: get and set values in an inheritable class-specific
array
- •
- hash: get and set values in an inheritable class-specific
hash
Methods for manipulating data which may be overridden per class or instance.
Uses external data storage, so it works with objects of any underlying data
type. See Class::MakeMethods::Template::Inheritable for details.
- •
- scalar: get and set scalar values for each instance or
class
- •
- string: get and set string values for each instance or
class
- •
- number: get and set numeric values for each instance or
class
- •
- boolean: get and set boolean values for each instance or
class
- •
- hash: get and set values in a hash referred to in each
instance
See Class::MakeMethods for general information about this distribution.