############################################################################## # $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/Subroutines/RequireArgUnpacking.run $ # $Date: 2008-03-16 17:40:45 -0500 (Sun, 16 Mar 2008) $ # $Author: clonezone $ # $Revision: 2187 $ ############################################################################## ## name basic passes ## failures 0 ## cut sub forward; sub foo { my ($self, $bar) = @_; print $bar; return; } sub fu { my $self = shift; my $bar = shift; print $bar; return; } #----------------------------------------------------------------------------- ## name prototype passes ## failures 0 ## cut sub foo() { print $bar; return; } #----------------------------------------------------------------------------- ## name scheduled subs ## failures 0 ## cut BEGIN { print 1; print 2; print 3; } INIT { print 1; print 2; print 3; } CHECK { print 1; print 2; print 3; } END { print 1; print 2; print 3; } #----------------------------------------------------------------------------- ## name passes - no arguments ## failures 0 ## cut sub few { } sub phu { 1; } sub phoo { return; } #----------------------------------------------------------------------------- ## name failure - not idiomatic enough ## failures 2 ## cut sub quux { my $self = shift @_; print $self; } sub cwux { my ($self) = ($_[0]); print $self; } #----------------------------------------------------------------------------- ## name basic failures ## failures 2 ## cut sub bar { print $_[0]; print $_[1]; print $_[2]; print $_[3]; } sub barr { print $_[1]; } #----------------------------------------------------------------------------- ## name failure in an anonymous sub ## failures 1 ## TODO PPI v1.118 doesn't recognize anonymous subroutines ## cut my $x = bar { print $_[0]; print $_[1]; print $_[2]; print $_[3]; } #----------------------------------------------------------------------------- ## name basic failures, set config higher ## failures 1 ## parms {short_subroutine_statements => 1} ## cut sub bar { print $_[0]; print $_[1]; print $_[2]; print $_[3]; } sub barr { print $_[1]; } #----------------------------------------------------------------------------- ## name mixed failures ## failures 2 ## cut sub baz { my $self = shift; print $_[0]; print $_[1]; print $_[2]; print $_[3]; } sub baaz { my ($self) = @_; print $_[0]; print $_[1]; print $_[2]; print $_[3]; } #----------------------------------------------------------------------------- ## name nested anon sub ## failures 0 ## cut sub baz { print "here\n"; return sub { my ($self) = @_; print $self->{bar}; }; } #----------------------------------------------------------------------------- ## name nested name sub ## failures 0 ## cut sub baz { print "here\n"; sub bar { my ($self) = @_; print $self->{bar}; } $x->bar(); } #----------------------------------------------------------------------------- # Local Variables: # mode: cperl # cperl-indent-level: 4 # fill-column: 78 # indent-tabs-mode: nil # c-indentation-style: bsd # End: # ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :