summaryrefslogtreecommitdiff
path: root/posts/2009-07-26-apply-a-role-to-a-moose-object.md
blob: 2af9ab95e590a7f0a660b75b8542d7b7116807f1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
You can apply a role to a Moose object. You can do something like

```perl
#!/usr/bin/perl -w
use strict;
use feature ':5.10';

package foo;
use Moose::Role;
sub baz { 
    say 'i can haz baz'; 
}

package bar;
use Moose;
1;

package main;

my $test = bar->new;
say "i can't haz baz" if !$test->can("baz");

foo->meta->apply($test);
$test->baz;
```

with the following output:

```
i can't haz baz
i can haz baz
```