--- /dev/null
+##############################################################################
+# $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 :