From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

NAME

Quaint - Unusual Object Orientation

VERSION

Version 0.04

SYNOPSIS

package Point;
use Quaint;
num req default {
0
} qw/x y/;
function {
$_[0]->x($_[1]);
$_[0]->y($_[2]);
} "move";
1;
...
package Point::Extend;
use Quaint;
extends 'Point';
function {
return sprintf "A point at (%s, %s)\n", $_[0]->x, $_[0]->y;
} qw/describe stringify/;
before {
warn 'Before';
} around {
warn 'Around';
return ($_[1], $_[2]);
} after {
warn 'After';
} qw/move/;
1;

Attributes

str ro req default {
"STRING"
} trigger {
$_[1] . '_' . time;
} "uid";

Types

any qw/one two three/;

any

bool

str

num

array

hash

obj

Read Only

Make the attribute read only.

any ro qw/one two three/;

Required

Make the attribute required.

any req qw/one two three/;

Default

Set a default for the attribute.

hash default {
{
one => 1,
two => 2,
three => 3
}
} "four"

Trigger

Set a trigger for the attribute.

array trigger {
push @{$_[1]}, 'extending passed array';
return $_[1];
} 'five';

Functions

function {
"";
} 'six';

AUTHOR

LNATION, <email at lnation.org>

BUGS

Please report any bugs or feature requests to bug-quaint at rt.cpan.org, or through the web interface at https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Quaint. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Quaint

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

This software is Copyright (c) 2024 by LNATION.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)