sub does { my ($proto, @methods) = @_; return if ref $proto && ! blessed $proto; my @does; foreach my $method (@methods) { push @does, $proto->can($method) || (); } @does = () unless @does == @methods; return wantarray ? @does : @does ? \@does : (); }