use strict; use warnings; use Test::More tests => 5; { package Animal; use Mouse::Role; requires 'bark'; sub eat { 'delicious' } has food => ( is => 'ro' ); } { package Dog; use Mouse::Role; with 'Animal'; } { package Chihuahua; use Mouse; with 'Dog'; sub bark { 'bow-wow' } } ok !Animal->can('food'); ok !Dog->can('food'); my $c = Chihuahua->new(food => 'bone'); is $c->eat(), 'delicious'; is $c->food(), 'bone'; is $c->bark(), 'bow-wow';