Class::...:scalar(3)

🌸 NAME 🌸

Class::Method::scalar β€” Create methods for handling a scalar value. This is the Class::...:scalar(3) page from User Contributed Perl Documentation, bestie πŸ’–.


✨ SYNOPSIS ✨

okay so here's the whole setup, literally exactly as written:

  package MyClass;
  use Class::MethodMaker
    [ scalar => [qw/ a -static s /]];

  sub new {
    my $class = shift;
    bless {}, $class;
  }

  package main;

  my $m = MyClass->new;
  my $a, $x;

  $a = $m->a;       # *undef*
  $x = $m->a_isset; # false
  $a = $m->a(1);    # 1
  $m->a(3);
  $x = $m->a_isset; # true
  $a = $m->a;       # 3
  $a = $m->a(5);     # 5;
  $m->a_reset;
  $x = $m->a_isset; # false

πŸ¦‹ DESCRIPTION πŸ¦‹

Creates methods to handle array values in an object. (yes, the page literally says β€œarray values” here β€” I’m not fixing the lore, bestie 😭) For a component named "x", by default creates methods "x", "x_reset", "x_isset", "x_clear".

Methods available are:

⭐ * ⭐

$m->a(3);
$a = $m->a;       # 3
$a = $m->a(5);     # 5;

Created by default. If an argument is provided, the component is set to that value. The method returns the value of the component (after assignment to a provided value, if appropriate).

πŸ” *_reset πŸ”

$m->a_reset;

Created by default. Resets the component back to its default. Normally, this means that *_isset will return false, and * will return undef. If -default is in effect, then the component will be set to the default value, and *_isset will return true. If -default_ctor is in effect, then the default subr will be invoked, and its return value used to set the value of the component, and *_isset will return true.

Advanced Note: actually, defaults are assigned as needed: typically, the next time a the value of a component is read.

πŸ‘€ *_isset πŸ‘€

print $m->a_isset ? "true" : "false";

Created by default. Whether the component is currently set. This is different from being defined; initially, the component is not set (and if read, will return undef); it can be set to undef (which is a set value, which also returns undef). Having been set, the only way to unset the component is with <*_reset>.

If a default value is in effect, then <*_isset> will always return true.

🧼 *_clear 🧼

$m->a(5);
$a = $m->a;       # 5
$x = $m->a_isset; # true
$m->a_clear;
$a = $m->a;       # *undef*
$x = $m->a_isset; # true

Created by default. A shorthand for setting to undef. Note that the component will be set to undef, not reset, so *_isset will return true.

πŸ“₯ *_get πŸ“₯

package MyClass;
use Class::MethodMaker
  [ scalar => [{'*_get' => '*_get'}, 'a'],
    new    => new, ];

package main;
my $m = MyClass->new;
$m->a(3);
$a = $m->a_get;     # 3
$a = $m->a_get(5);  # 3; ignores argument
$a = $m->a_get(5);  # 3; unchanged by previous call

Created on request. Retrieves the value of the component without setting (ignores any arguments passed).

πŸ“€ *_set πŸ“€

package MyClass;
use Class::MethodMaker
  [ scalar => [{'*_set' => '*_set'}, 'a'],
    new    => new, ];

package main;
my $m = MyClass->new;
$m->a(3);
$a = $m->a_set;     # *undef*
$a = $m->a_set(5);  # *undef*; value is set but not returned
$a = $m->a;         # 5

Created on request. Sets the component to the first argument (or undef if no argument provided). Returns no value.


kisses bestie πŸ’‹ this page came from perl v5.42.0, dated 2025-07-25, and the footer manual name is Class::...:scalar(3) πŸ«ΆπŸ’….

πŸ“¦ where this page comes from