logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Moo::Role - Minimal Object Orientation support for Roles

Authors

See Moo for authors.

Cleaning Up Imports

Moo::Role cleans up its own imported methods and any imports declared before the "use Moo::Role" statement automatically. Anything imported after "use Moo::Role" will be composed into consuming packages. A package that consumes this role: package My::Role::ID; use Digest::MD5 qw(md5_hex); use Moo::Role; use Digest::SHA qw(sha1_hex); requires 'name'; sub as_md5 { my ($self) = @_; return md5_hex($self->name); } sub as_sha1 { my ($self) = @_; return sha1_hex($self->name); } 1; ..will now have a "$self->sha1_hex()" method available to it that probably does not do what you expect. On the other hand, a call to "$self->md5_hex()" will die with the helpful error message: "Can't locate object method "md5_hex"". See "CLEANING UP IMPORTS" in Moo for more details.

Description

"Moo::Role" builds upon Role::Tiny, so look there for most of the documentation on how this works (in particular, using "Moo::Role" also enables strict and warnings). The main addition here is extra bits to make the roles more "Moosey;" which is to say, it adds "has".

Imported Subroutines

See "IMPORTED SUBROUTINES" in Role::Tiny for all the other subroutines that are imported by this module. has has attr => ( is => 'ro', ); Declares an attribute for the class to be composed into. See "has" in Moo for all options.

Name

Moo::Role - Minimal Object Orientation support for Roles

Support

See Moo for support and contact information.

Synopsis

package My::Role; use Moo::Role; use strictures 2; sub foo { ... } sub bar { ... } has baz => ( is => 'ro', ); 1; And elsewhere: package Some::Class; use Moo; use strictures 2; # bar gets imported, but not foo with 'My::Role'; sub foo { ... } 1;
return

See Also