{ package MyOpenSSH 0.000001; use Moose::Role; has 'ssh' => (is => 'rw', isa => 'Str', required => 0, lazy => 0 ); } { package Apache2Info 0.000001; use Moose::Role; requires 'ssh'; } { package WebServerRemote 0.000001; with 'MyOpenSSH'; with 'Apache2Info'; }