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

NAME

Data::Object::Role

ABSTRACT

Role Builder for Perl 5

SYNOPSIS

package Identity;
package Example;
use Moo;
with 'Identity';
package main;
my $example = Example->new;

DESCRIPTION

This package modifies the consuming package making it a role.

INHERITS

This package inherits behaviors from:

Moo

SCENARIOS

This package supports the following scenarios:

has

package HasIdentity;
has id => (
is => 'ro'
);
package HasExample;
use Moo;
with 'HasIdentity';
package main;
my $example = HasExample->new;

This package supports the has keyword, which is used to declare role attributes, which can be accessed and assigned to using the built-in getter/setter or by the object constructor. See Moo for more information.

requires

requires 'execute';
use Moo;
sub execute {
# does something ...
}
package main;
my $example = RequiresExample->new;

This package supports the requires keyword, which is used to declare methods which must exist in the consuming package. See Moo for more information.

with

package WithEntity;
package WithIdentity;
with 'WithEntity';
package WithExample;
use Moo;
with 'WithIdentity';
package main;
my $example = WithExample->new;

This package supports the with keyword, which is used to declare roles to be used and compose into your role. See Moo for more information.

AUTHOR

Al Newkirk, awncorp@cpan.org

LICENSE

Copyright (C) 2011-2019, Al Newkirk, et al.

This is free software; you can redistribute it and/or modify it under the terms of the The Apache License, Version 2.0, as elucidated in the "license file".

PROJECT

Wiki

Project

Initiatives

Milestones

Contributing

Issues