Subroutines that expect large numbers of arguments are hard to use because programmers routinely have to look at documentation to remember the order of those arguments. Many arguments is often a sign that a subroutine should be refactored or that an object should be passed to the routine.


By default, this policy allows up to 5 arguments without warning. To change this threshold, put entries in a .perlcriticrc file like this:

  max_arguments = 6


PPI doesn't currently detect anonymous subroutines, so we don't check those. This should just work when PPI gains that feature.

We don't check for @ARG, the alias for @_ from English.pm. That's deprecated anyway.


Initial development of this policy was supported by a grant from the Perl Foundation.


Chris Dolan <cdolan@cpan.org>


Copyright (c) 2007 Chris Dolan. Many rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license can be found in the LICENSE file included with this module