Keyword::Simple lets you implement new keywords in pure Perl. To do this, you
need to write a module and call Keyword::Simple::define in your import method.
Any keywords defined this way will be available in the lexical scope that's
currently being compiled.
WWW: https://metacpan.org/release/Keyword-Simple
Keyword::Declare implements a new Perl keyword: keyword, which you can use to
specify other new keywords.
Normally, to define new keywords in Perl, you either have to write them in XS
(shiver!) or use a module like Keyword::Simple or Keyword::API. Using any of
these approaches requires you to grab all the source code after the keyword,
manually parse out the components of the keyword's syntax, construct the
replacement source code, and then substitute it for the original source code you
just parsed.
Using Keyword::Declare, you define a new keyword by specifying its name and a
parameter list corresponding to the syntactic components that must follow the
keyword. You then use those parameters to construct and return the replacement
source code. The module takes care of setting up the keyword, and of the
associated syntax parsing, and of inserting the replacement source code in the
correct place.
WWW: https://metacpan.org/release/Keyword-Declare
Data::Object::Struct provides a class that creates struct-like objects which
bundle attributes together, is immutable, and provides accessors, without having
to write an explicit class.
WWW: https://metacpan.org/release/Data-Object-Struct
Data::Object::State provides an abstract base class for creating singleton
classes. This package is derived from Moo and makes consumers Moo classes (with
all that that entails). This package also injects a BUILD method which is
responsible for hooking into the build process and returning the appropriate
state.
WWW: https://metacpan.org/release/Data-Object-State
Data::Object::Role::Tryable provides a wrapper around the Data::Object::Try
class which provides an object-oriented interface for performing complex
try/catch operations.
WWW: https://metacpan.org/release/Data-Object-Role-Tryable
Data::Object::Role::Proxyable provides a wrapper around the AUTOLOAD routine
which processes calls to routines which don't exist. Adding a build_proxy method
to the consuming class acts as a hook into routine dispatching, which processes
calls to routines which don't exist. The build_proxy routine is called as a
method and receives $self, $package, $method, and any arguments passed to the
method as a list of arguments, e.g. @args. The build_proxy method must return a
routine (i.e. a callback) or the undefined value which results in a "method
missing" error.
WWW: https://metacpan.org/release/Data-Object-Role-Proxyable
Data::Object::Role::Errable provides a mechanism for handling errors
(exceptions). It's a more structured approach to being "throwable". The idea is
that any object that consumes this role can set an error which automatically
throws an exception which if trapped includes the state (object as thrown) in
the exception context.
WWW: https://metacpan.org/release/Data-Object-Role-Errable
Data::Object::Role::Arguable provides a mechanism for unpacking an argument list
and creating a data structure suitable for passing to the consumer constructor.
The argslist routine should return a list of attribute names in the order to be
parsed. An attribute name maybe prefixed with "@" to denote that all remaining
items should be assigned to an arrayref, e.g. @options, or "%" to denote that
all remaining items should be assigned to a hashref, e.g. %options.
WWW: https://metacpan.org/release/Data-Object-Role-Arguable
Data::Object::Data provides methods for parsing and extracting pod-like sections
from any file or package. The pod-like syntax allows for using these sections
anywhere in the source code and having Perl properly ignoring them.
WWW: https://metacpan.org/release/Data-Object-Data
Data::Object::Attributes provides options for defining class attributes.
Specifically, this package wraps the has attribute keyword and adds shortcuts
and enhancements. If no directives are specified, the attribute is declared as
read-write and optional.
WWW: https://metacpan.org/release/Data-Object-Attributes