MakeMe...kageVar(3pm)

πŸ“¦
version 1.01 Β· 5 versions
, in ubuntu noble, ubuntu resolute, ubuntu stonking

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