1MakeMethods::Docs::CataUlsoegr(3C)ontributed Perl DocumeMnatkaetMieotnhods::Docs::Catalog(3)
2
3
4

NAME

6       Class::MakeMethods::Docs::Catalog - List of Makable Method Types
7

DESCRIPTION

9       This document lists the various subclasses of Class::MakeMethods
10       included in this distribution, and the method types each one provides.
11
12       See the documentation for each implementation for more details about
13       the features it provides.
14
15       For each class, a parenthetical comment indicates whether the methods
16       it generates are applicable to individual blessed objects (Instances),
17       to class data (Global), or both (Any) =head2 Scoping
18
19       The final part of the name of a method-generating subclass typically
20       indicates the scope or applicability of the methods it generates
21
22       Hash
23           For object instances based on blessed hashes with named values.
24
25       Array
26           For object instances based on blessed arrays with positional
27           values.
28
29       Scalar
30           For object instances based on blessed scalars with a single value.
31
32       InsideOut
33           For any object instance regardless of underlying data type.
34
35       Ref For any object instance regardless of underlying data type.
36
37       Inheritable
38           For data which can be set at the class, subclass, or instance
39           level.
40
41       Class
42           For class data shared by all instances but different for each
43           subclass
44
45       ClassVar
46           For class data shared by all instances but different for each
47           subclass
48
49       ClassInherit
50           For class data shared by all instances but different for each
51           subclass
52
53       Global
54           For global data shared by a class and all its instances and
55           subclasses
56
57       PackageVar
58           For global data shared by a class and all its instances and
59           subclasses
60
61       Universal
62           # General method types that are widely applicable
63
64   Summary Charts
65       This table shows which scopes are available in each generator family:
66
67         SCOPING          Basic      Standard   Evaled     Composite  Template
68         Hash               +          +          +          +          +
69         Array              +          +                     +          +
70         Scalar                                                         +
71         InsideOut                                                      +
72         Ref                                                            +
73         Inheritable                   +                     +          +
74         Class                                                          +
75         ClassVar                                                       +
76         ClassInherit                                                   +
77         Global             +          +                     +          +
78         PackageVar                                                     +
79         Universal                                           +          +
80
81       This table shows which types of methods are typically available in each
82       generator family:
83
84         METHOD           Basic      Standard   Evaled     Composite  Template
85         new                +          +                     +          +
86
87         scalar             +          +                     +          +
88         string                                                         +
89         string_index                                                   +
90         number                                                         +
91         boolean                                                        +
92         boolean_index                                                  +
93         bits                                                           +
94
95         array              +          +                     +          +
96         struct                                                         +
97
98         hash               +          +                     +          +
99         hash_of_arrays                                                 +
100         tiedhash                                                       +
101
102         object             +                                +          +
103         instance                                                       +
104         array_of_objects                                               +
105
106         code                                                           +
107         code_or_scalar                                                 +
108

BASIC CLASSES

110   Basic::Hash (Instances)
111       Methods for objects based on blessed hashes. See
112       Class::MakeMethods::Basic::Hash for details.
113
114       •   new: create and copy instances
115
116       •   scalar: get and set scalar values in each instance
117
118       •   array: get and set values stored in an array refered to in each
119           instance
120
121       •   hash: get and set values in a hash refered to in each instance
122
123   Basic::Array (Instances)
124       Methods for manipulating positional values in arrays. See
125       Class::MakeMethods::Basic::Array for details.
126
127       •   new: create and copy instances
128
129       •   scalar: get and set scalar values in each instance
130
131       •   array: get and set values stored in an array refered to in each
132           instance
133
134       •   hash: get and set values in a hash refered to in each instance
135
136   Basic::Global (Global)
137       Global methods are not instance-dependent; calling them by class name
138       or from any instance or subclass will consistently access the same
139       value. See Class::MakeMethods::Basic::Global for details.
140
141       •   scalar: get and set a global scalar value
142
143       •   array: get and set values in a global array
144
145       •   hash: get and set values in a global hash
146

STANDARD CLASSES

148   Standard::Hash (Instances)
149       Methods for objects based on blessed hashes. See
150       Class::MakeMethods::Standard::Hash for details.
151
152       •   new: create and copy instances
153
154       •   scalar: get and set scalar values in each instance
155
156       •   array: get and set values stored in an array refered to in each
157           instance
158
159       •   hash: get and set values in a hash refered to in each instance
160
161       •   object: access an object refered to by each instance
162
163   Standard::Array (Instances)
164       Methods for manipulating positional values in arrays. See
165       Class::MakeMethods::Standard::Array for details.
166
167       •   new: create and copy instances
168
169       •   scalar: get and set scalar values in each instance
170
171       •   array: get and set values stored in an array refered to in each
172           instance
173
174       •   hash: get and set values in a hash refered to in each instance
175
176       •   object: access an object refered to by each instance
177
178   Standard::Global (Global)
179       Methods for manipulating global data. See
180       Class::MakeMethods::Standard::Global for details.
181
182       •   scalar: get and set global scalar
183
184       •   array: get and set values stored in a global array
185
186       •   hash: get and set values in a global hash
187
188       •   object: global access to an object ref
189
190   Standard::Inheritable (Any)
191       Methods for manipulating data which may be overridden per class or
192       instance. Uses external data storage, so it works with objects of any
193       underlying data type.  See Class::MakeMethods::Standard::Inheritable
194       for details.
195
196       •   scalar: get and set scalar values for each instance or class
197

COMPOSITE CLASSES

199   Composite::Hash (Instances)
200       Methods for objects based on blessed hashes. See
201       Class::MakeMethods::Composite::Hash for details.
202
203       •   new: create and copy instances
204
205       •   scalar: get and set scalar values in each instance
206
207       •   array: get and set values stored in an array refered to in each
208           instance
209
210       •   hash: get and set values in a hash refered to in each instance
211
212       •   object: access an object refered to by each instance
213
214   Composite::Array (Instances)
215       Methods for manipulating positional values in arrays. See
216       Class::MakeMethods::Composite::Array for details.
217
218       •   new: create and copy instances
219
220       •   scalar: get and set scalar values in each instance
221
222       •   array: get and set values stored in an array refered to in each
223           instance
224
225       •   hash: get and set values in a hash refered to in each instance
226
227       •   object: access an object refered to by each instance
228
229   Composite::Global (Global)
230       Methods for manipulating global data. See
231       Class::MakeMethods::Composite::Global for details.
232
233       •   scalar: get and set global scalar
234
235       •   array: get and set values stored in a global array
236
237       •   hash: get and set values in a global hash
238
239       •   object: global access to an object ref
240
241   Composite::Inheritable (Any)
242       Methods for manipulating data which may be overridden per class or
243       instance. Uses external data storage, so it works with objects of any
244       underlying data type.  See Class::MakeMethods::Composite::Inheritable
245       for details.
246
247       •   scalar: get and set scalar values for each instance or class
248
249       •   hook: create a subroutine intended to have operations added to it
250
251   Composite::Universal (Any)
252       Methods for padding pre- and post-conditions to any class. See
253       Class::MakeMethods::Composite::Universal for details.
254
255       •   patch: add pre and post operations to an existing subroutine
256

TEMPLATE CLASSES

258   Template::Universal (Any)
259       Meta-methods for any type of object. See
260       Class::MakeMethods::Template::Universal.
261
262       •   no_op - a method with an empty body
263
264       •   croak - a method which will croak if called
265
266       •   method_init - calls other methods from a list of method name =>
267           argument pairs
268
269       •   forward_methods - delegates to an object provided by another method
270
271   Template::Ref (Any Instance)
272       Methods for deep copies and comparisons. See
273       Class::MakeMethods::Template::Ref.
274
275       •   clone: make a deep copy of an object instance
276
277       •   prototype: make new objects by cloning a typical instance
278
279       •   compare: compare one object to another
280
281   Template::Generic (Abstract)
282       The remaining subclasses inherit a similar collection of templates from
283       Template::Generic, and provide a different type of scoping or binding
284       for the functionality defined by the Generic template. See
285       Class::MakeMethods::Template::Generic for details.
286
287   Template::Hash (Instances)
288       The most commonly used implementation, for objects based on blessed
289       hashes. See Class::MakeMethods::Template::Hash.
290
291       •   new: create and copy instances
292
293       •   scalar: get and set scalar values in each instance
294
295       •   string: get and set string values in each instance
296
297       •   number: get and set numeric values in each instance
298
299       •   boolean: get and set boolean values in each instance
300
301       •   bits: get and set boolean values stored in a single value in each
302           instance
303
304       •   array: get and set values stored in an array refered to in each
305           instance
306
307       •   struct - methods for acccessing values which are stored by position
308           in an array
309
310       •   hash: get and set values in a hash refered to in each instance
311
312       •   tiedhash: get and set values in a tied hash refered to in each
313           instance
314
315       •   hash_of_arrays: for references to hashes of arrays contained in
316           each instance
317
318       •   object: set or access a reference to an object contained in each
319           instance
320
321       •   array_of_objects: manipulate an array of object references within
322           in each instance
323
324       •   code: set or call a function reference contained in each instance
325
326   Template::Array (Instances)
327       Methods for manipulating positional values in arrays. See
328       Class::MakeMethods::Template::Array.
329
330       •   new: create and copy array instances
331
332       •   scalar: get and set scalar values in a given array position
333
334       •   string: get and set string values in a given array position
335
336       •   number: get and set numeric values in a given array position
337
338       •   boolean: get and set boolean values in a given array position
339
340       •   builtin_isa: generates a wrapper around some builtin function,
341           cacheing the results in the object and providing a by-name
342           interface
343
344   Template::Scalar (Instances)
345       For objects based on blessed scalars.  See
346       Class::MakeMethods::Template::Scalar.
347
348       Note that these objects can generally only have one value accessor
349       method, as all such accessors will refer to the same value.
350
351       •   new: create and copy instances
352
353       •   scalar: get and set scalar values in each instance
354
355       •   string: get and set a string value in each instance
356
357       •   number: get and set a numeric value in each instance
358
359       •   boolean: get and set a boolean value in each instance
360
361       •   bits: get and set boolean values stored in a single value in each
362           instance
363
364       •   code: set or call a function reference contained in each instance
365
366   Template::InsideOut (Instances)
367       Stores values for objects in an external location hashed by identity.
368       See Class::MakeMethods::Template::InsideOut.
369
370       Note that while the below constructor creates and returns scalar
371       references, accessor methods can be created with this implementation
372       for use with any type of object.
373
374       •   new: create and copy instances
375
376       •   scalar: get and set scalar values associated with each instance
377
378       •   string: get and set string values associated with each instance
379
380       •   string_index: get and set string values associated with each
381           instance, and maintain an index of instances by value
382
383       •   number: get and set numeric values associated with each instance
384
385       •   boolean: get and set boolean values associated with each instance
386
387       •   boolean_index: get and set boolean values associated with each
388           instance, and maintain a list of items which have the flag set
389
390       •   bits: get and set boolean values stored in a single value
391           associated with each instance
392
393       •   array: get and set values stored in an array associated with each
394           instance
395
396       •   hash: get and set values in a hash associated with each instance
397
398       •   code: set or call a function reference associated with each
399           instance
400
401   Template::Global (Global)
402       Global methods are not instance-dependent; calling them by class name
403       or from any instance will consistently access the same value.  See
404       Class::MakeMethods::Template::Static.
405
406       •   scalar: get and set a global scalar value
407
408       •   string: get and set a global string value
409
410       •   number: get and set a global number value
411
412       •   boolean: get and set a global boolean value
413
414       •   array: get and set values in a global array
415
416       •   hash: get and set values in a global hash
417
418       •   tiedhash: get and set values in a global tied hash
419
420       •   hash_of_arrays: get and set values in a global hash of arrays
421
422       •   object: set and access a global reference to an object
423
424       •   instance: set and access a global reference to an object of the
425           declaring class
426
427       •   code: set and access a global reference to a subroutine.
428
429   Template::PackageVar (Global)
430       PackageVar methods access a variable in the declaring package. Thus,
431       they have the same effect as Static methods, while keeping their value
432       accessible via the symbol table.  See
433       Class::MakeMethods::Template::PackageVar.
434
435       •   scalar: get and set a global scalar value
436
437       •   string: get and set a global string value
438
439       •   number: get and set a global number value
440
441       •   boolean: get and set a global boolean value
442
443       •   array: get and set values in a global array
444
445       •   hash: get and set values in a global hash
446
447   Template::Class (Global)
448       Class methods are similar to Static methods, except that each subclass
449       and its instances will access a distinct value. See
450       Class::MakeMethods::Template::Class.
451
452       •   scalar: get and set a class-specific scalar value
453
454       •   string: get and set a class-specific string value
455
456       •   number: get and set a class-specific number value
457
458       •   boolean: get and set a class-specific boolean value
459
460       •   array: get and set values in a class-specific array
461
462       •   hash: get and set values in a class-specific hash
463
464   Template::ClassVar (Global)
465       ClassVar methods access a variable in the package on which they are
466       called.  Thus, they have the same effect as Class methods, while
467       keeping their value accessible via the symbol table, like PackageVar.
468       See Class::MakeMethods::Template::ClassVar.
469
470       •   scalar: get and set a class-specific scalar value
471
472       •   string: get and set a class-specific string value
473
474       •   number: get and set a class-specific number value
475
476       •   boolean: get and set a class-specific boolean value
477
478       •   array: get and set values in a class-specific array
479
480       •   hash: get and set values in a class-specific hash
481
482   Template::ClassInherit (Global)
483       ClassInherit methods are an intermediate point between Static and Class
484       methods; subclasses inherit their superclass's value until they set
485       their own value, after which they become distinct. See
486       Class::MakeMethods::Template::ClassInherit.
487
488       •   scalar: get and set an inheritable class-specific scalar value
489
490       •   string: get and set an inheritable class-specific string value
491
492       •   number: get and set an inheritable class-specific number value
493
494       •   boolean: get and set an inheritable class-specific boolean value
495
496       •   array: get and set values in an inheritable class-specific array
497
498       •   hash: get and set values in an inheritable class-specific hash
499
500   Template::Inheritable (Any)
501       Methods for manipulating data which may be overridden per class or
502       instance. Uses external data storage, so it works with objects of any
503       underlying data type.  See Class::MakeMethods::Template::Inheritable
504       for details.
505
506       •   scalar: get and set scalar values for each instance or class
507
508       •   string: get and set string values for each instance or class
509
510       •   number: get and set numeric values for each instance or class
511
512       •   boolean: get and set boolean values for each instance or class
513
514       •   hash: get and set values in a hash refered to in each instance
515

SEE ALSO

517       See Class::MakeMethods for general information about this distribution.
518
519
520
521perl v5.36.0                      2023-01-20     MakeMethods::Docs::Catalog(3)
Impressum