in reply to perlcritic and OO Perl (including Moose) idioms

You can eliminate the warning about unpacking @_ by re-writing as follows:

sub _build_needs_build { my ($self, %args) = @_; return $self; }

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Replies are listed 'Best First'.
Re^2: perlcritic and OO Perl (including Moose) idioms
by boftx (Deacon) on Sep 20, 2013 at 02:46 UTC

    That was the first thing we did to verify what was being complained about. Yes, that works, but ...

    1) we really don't want to replace my $self = shift; in hundreds, if not thousands, of places in our code base.

    2) my $self = shift; is what I would consider a very popular idiom that has been in use since (I suspect) many of us first read about OO Perl and how it relates to farm animals. (BTW, where can I find a copy of that very informative original tutorial?)

    3) Most importantly, it does nothing to address the following code that allows for rather flexible arg passing (not saying if this is good or bad, just that this concept is pretty standard, too.):

    my $self = shift; my %args = @_ == 1 ? ( period => shift ) : @_;

    I appreciate the response, but unfortunately that has already been viewed as a less-than-optimal resolution.