The Perl Advent Calendar needs more articles for 2022. Submit your idea today!

NAME

Data::Object::Class

ABSTRACT

Class Builder for Perl 5

SYNOPSIS

package Identity;

use Data::Object::Class;

package main;

my $id = Identity->new;

DESCRIPTION

This package modifies the consuming package making it a class.

INHERITS

This package inherits behaviors from:

Moo

SCENARIOS

This package supports the following scenarios:

extends

# given: synopsis

package Person;

use Data::Object::Class;

extends 'Identity';

package main;

my $person = Person->new;

This package supports the extends keyword, which is used to declare superclasses your class will inherit from. See Moo for more information.

has

# given: synopsis

package Person;

use Data::Object::Class;

has name => (
  is => 'ro'
);

package main;

my $person = Person->new(name => '...');

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

with

# given: synopsis

package Employable;

use Moo::Role;

package Person;

use Data::Object::Class;

with 'Employable';

package main;

my $person = Person->new;

This package supports the with keyword, which is used to declare roles to be used and compose into your class. 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