Class::Roles provides a Perl 5 implementation of Perl 6 roles.
Roles are named collections of reusable behavior. They provide a
mechanism to mark that a class performs certain behaviors and to reuse
the code that performs those behaviors.
This package provides a framework for rapid Object Oriented Perl
application development. It consists of a number of base classes that are
similar to the C++/STL framework, plus a number of helper classes which
provide the glue to transparently generate common functions, and will
enable you to put your Perl application together very quickly.
Class::Spiffy is a framework and methodology for doing object oriented
(OO) programming in Perl. Class::Spiffy combines the best parts of
Exporter.pm, base.pm, mixin.pm and SUPER.pm into one magic foundation
class. It attempts to fix all the nits and warts of traditional Perl OO,
in a clean, straightforward and (perhaps someday) standard way.
Class::StateMachine allows to define methods that are dispatched
depending on an internal state property via the OnState attribute.
This module provides a faster but less secure version of Class::Std.
This module provides three utility subroutines that simplify the creation of
"inside-out" classes. See Chapters 15 and 16 of "Perl Best Practices" (O'Reilly,
2005) for details.
Most programmers who use Perl's object-oriented features construct their
objects by blessing a hash. But, in doing so, they undermine the
robustness of the OO approach. Hash-based objects are unencapsulated:
their entries are open for the world to access and modify.
Objects without effective encapsulation are vulnerable. Instead of
politely respecting their public interface, some clever client coder
inevitably will realize that it's marginally faster to interact directly
with the underlying implementation, pulling out attribute values
directly from the hash of an object.
Class::Tangram is a common base class originally intended for use with
Tangram objects, that gives you free constructors, access methods,
update methods, and a destructor that should help in breaking circular
references for you. Type checking is achieved by parsing the Tangram
schema for the object, which is contained within the object class in an
exported variable $schema.
This module implements a minimal lightweight exception object. It is meant
to be a compromise between more basic solutions like Carp which can only
print information and cannot handle exception objects, and more complex
solutions like Exception::Class which can be used to define complex inline
exceptions and has a number of module dependencies.
Class::Tom is a perl module that allows you to transport objects from
one system to another without requiring that the packages the object
relies on actually exist on the other machine.