summaryrefslogblamecommitdiff
path: root/posts/2009-07-26-apply-a-role-to-a-moose-object.org
blob: 9a90cbd1ab23ca70419f2a588c7a52338fdf3cf0 (plain) (tree)































                                                                 
You can apply a role to a Moose object. You can do something like

#+BEGIN_SRC 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;
#+END_SRC

with the following output:

#+BEGIN_EXAMPLE
    i can't haz baz
    i can haz baz
#+END_EXAMPLE