NAME

Quaint - Unusual Object Orientation

VERSION

Version 0.03

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)