MakeMe...kageVar(3pm)
Class::MakeMethods::Template::PackageVar β MakeMe...kageVar(3pm), straight from User Contributed Perl Documentation. okay bestie, this page is lowkey iconic: itβs about static methods that use global variables, and the whole vibe is very βglobal state has main character energyβ π
β¨
π NAME π
Class::MakeMethods::Template::PackageVar β Static methods with global variables. periodt.
β¨ SYNOPSIS β¨
package MyObject;
use Class::MakeMethods::Template::PackageVar (
scalar => [ 'foo' ]
);
package main;
MyObject->foo('bar')
print MyObject->foo();
$MyObject::foo = 'bazillion';
print MyObject->foo();
thatβs the whole little demo, bestie π«Ά
π¦ DESCRIPTION π¦
These meta-methods provide access to package (class global) variables. Theyβre essentially the same as the Static meta-methods, except that they use a global variable in the declaring package to store their values. no cap.
π Common Parameters π
The following parameters are defined for PackageVar meta-methods.
πΈ variable πΈ
The name of the variable to store the value in. Defaults to the same name as the method.
π Standard Methods π
The following methods from Generic should all be supported, bestie:
scalar
string
string_index (?)
number
boolean
bits (?)
array (*)
hash (*)
tiedhash (?)
hash_of_arrays (?)
object (?)
instance (?)
array_of_objects (?)
code (?)
code_or_scalar (?)
See Class::MakeMethods::Template::Generic for the interfaces and behaviors of these method types.
Okay so about those little marks: the items marked with * above are specifically defined in this package, whereas the others are formed automatically by the interaction of this package's generic settings with the code templates provided by the Generic superclass.
The items marked with ? above have not been tested sufficiently; please inform the author if they do not function as you would expect. not me putting the question marks there, thatβs literally what the page says π
π§ PackageVar:vars π§
This rewrite rule converts package variable names into PackageVar methods of the equivalent data type.
Hereβs an example declaration, fresh off the page:
package MyClass;
use Class::MakeMethods::Template::PackageVar (
vars => '$DEBUG %Index'
);
MyClass now has methods that get and set the contents of its $MyClass::DEBUG and %MyClass::Index package variables:
MyClass->DEBUG( 1 );
MyClass->Index( 'foo' => 'bar' );
π thatβs the whole page, bestie. cute little footer vibe: this is from perl v5.36.0, dated 2022-10-13, and the manpage name is MakeMe...kageVar(3pm). mwah π
π
π¦ where this page comes from
- ubuntu noble: libclass-makemethods-perl 1.01-7 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libclass-makemethods-perl 1.01-7 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libclass-makemethods-perl 1.01-7 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms