---
name: "MooseX::Role::Strict"
section: "3pm"
platform: "linux"
package: "libmoosex-role-strict-perl"
version: "0.5-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MooseX::Role::Strict"
---

# MooseX::Role::Strict(3pm)

use strict 'roles'

## NAME

MooseX::Role::Strict - use strict 'roles'

## VERSION

Version 0.05

## SYNOPSIS

This code will fail at composition time:

```
    {
        package My::Role;
        use MooseX::Role::Strict;
        sub conflict {}
    }
    {
        package My::Class;
        use Moose;
        with 'My::Role';
        sub conflict {}
    }
```

With an error message similar to the following:

```
    The class My::Class has implicitly overridden the method (conflict) from
    role My::Role ...
```

To resolve this, explicitly exclude the 'conflict' method:

```
    {
        package My::Class;
        use Moose;
        with 'My::Role' => { -excludes => [ 'conflict' ] };
        sub conflict {}
    }
```

## DESCRIPTION

**WARNING**:  this is ALPHA code.  More features to be added later.

When using Moose::Role, a class which provides a method a role provides will silently override that method.  This can cause strange, hard-to-debug errors when the role's methods are not called.  Simple use `"MooseX::Role::Strict"` instead of `"Moose::Role"` and overriding a role's method becomes a composition-time failure.  See the synopsis for a resolution.

## AUTHOR

Curtis "Ovid" Poe, `"<ovid at cpan.org>"`

## BUGS

Please report any bugs or feature requests to `"bug-moosex-role-strict at rt.cpan.org"`, or through the web interface at \<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=MooseX-Role-Strict\>.  I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

## SUPPORT

You can find documentation for this module with the perldoc command.

```
    perldoc MooseX::Role::Strict
```

You can also look for information at:

- •

  RT: CPAN's request tracker

  \<http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX-Role-Strict\>

- •

  AnnoCPAN: Annotated CPAN documentation

  \<http://annocpan.org/dist/MooseX-Role-Strict\>

- •

  CPAN Ratings

  \<http://cpanratings.perl.org/d/MooseX-Role-Strict\>

- •

  Search CPAN

  \<http://search.cpan.org/dist/MooseX-Role-Strict/\>

## ACKNOWLEDGEMENTS

## TODO

Add `"-includes"` to make things easier:

```
 with 'Some::Role' => { -includes => 'bar' };
```

That reverses the sense of '-excludes' in case you're more interested in the interface than the implementation.  I'm unsure of the syntax for auto-converting a role to a pure interface.

## COPYRIGHT & LICENSE

Copyright 2009 Curtis "Ovid" Poe, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
