---
name: "MooseX::Declare::Syntax::Keyword::With"
section: "3pm"
platform: "linux"
package: "libmoosex-declare-perl"
version: "0.43-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MooseX::Declare::Syntax::Keyword::With"
---

# MooseX::Declare::Syntax::Keyword::With(3pm)

Apply roles within a class- or role-body

## NAME

MooseX::Declare::Syntax::Keyword::With - Apply roles within a class- or role-body

## VERSION

version 0.43

## SYNOPSIS

```
  use MooseX::Declare;
  class ::Baz {
      with 'Qux';
      ...
  }
```

## DESCRIPTION

The `"with"` keyword allows you to apply roles to the local class or role. It differs from the `"with"`-option of the `"class"` and `"role"` keywords in that it applies the roles immediately instead of deferring application until the end of the class- or role-definition.

It also differs slightly from the `"with"` provided by Moose in that it expands relative role names (`"::Foo"`) according to the current `"namespace"`.

## METHODS

### parse

```
  Object->parse(Object $context)
```

Will skip the declarator and make with `"with"` invocation apply the set of specified roles after possible `"namespace"`-expanding has been done.

## CONSUMES

- •

  MooseX::Declare::Syntax::KeywordHandling

## SEE ALSO

- •

  MooseX::Declare

- •

  MooseX::Declare::Syntax::Keyword::Namespace

## AUTHOR

Florian Ragwitz \<rafl@debian.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2008 by Florian Ragwitz.

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