The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Data::Object::Role

ABSTRACT

Role Builder for Perl 5

SYNOPSIS

package Identity;

use Data::Object::Role;

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;

use Data::Object::Role;

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

package EntityRequires;

use Data::Object::Role;

requires 'execute';

package RequiresExample;

use Moo;

with 'EntityRequires';

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;

use Data::Object::Role;

package WithIdentity;

use Data::Object::Role;

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