in reply to Re: Class capabilities
in thread Class capabilities

Yeah, my first cut was a bit too simple. It's now:

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 : (); }

Thanks!

Cheers,
Ovid

New address of my CGI Course.

Replies are listed 'Best First'.
Re^3: Class capabilities
by Aristotle (Chancellor) on Oct 11, 2005 at 23:16 UTC

    Kind of complicated. Why not return as soon as you fail to find any method?

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

    That said I think diotalevi’s Params::Validate recommendation is spot on.

    Makeshifts last the longest.