NAME
slots - A simple pragma for managing class slots.
VERSION
version 0.03
SYNOPSIS
package Point {
use strict;
use warnings;
use parent 'UNIVERSAL::Object';
use slots (
x => sub { 0 },
y => sub { 0 },
);
sub clear {
my ($self) = @_;
$self->{x} = 0;
$self->{y} = 0;
}
}
package Point3D {
use strict;
use warnings;
use parent 'Point';
use slots (
z => sub { 0 },
);
sub clear {
my ($self) = @_;
$self->next::method;
$self->{z} = 0;
}
}
DESCRIPTION
This is a very simple pragma which takes a set of key/value arguments and assigns it to the %HAS
package variable of the calling class.
This module will also detect superclasses and insure that slots are inherited correctly, this wil occur during the next available UNITCHECK phase.
AUTHOR
Stevan Little <stevan@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017, 2018 by Stevan Little.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.