--- /dev/null
+## name one statement before package
+## failures 1
+## cut
+$foo = $bar;
+package foo;
+END_PERL
+
+$policy = 'Modules::RequireExplicitPackage';
+is( pcritique($policy, \$code), 1, $policy.' 1 stmnt before package');
+
+#-----------------------------------------------------------------------------
+
+## name BEGIN block before package
+## failures 1
+## cut
+BEGIN{
+ print 'Hello'; #this violation will be squelched
+ print 'Beginning'; #this violation will be squelched
+}
+
+package foo;
+
+#-----------------------------------------------------------------------------
+
+## name inclusion before package
+## failures 1
+## cut
+use Some::Module;
+package foo;
+
+#-----------------------------------------------------------------------------
+
+## name two statements before package
+## failures 1
+## cut
+$baz = $nuts;
+print 'whatever'; #this violation will be squelched
+package foo;
+
+#-----------------------------------------------------------------------------
+
+## name no package at all
+## failures 1
+## cut
+print 'whatever';
+
+#-----------------------------------------------------------------------------
+
+## name no statements at all
+## failures 0
+## cut
+
+# no statements
+
+#-----------------------------------------------------------------------------
+
+## name just a package, no statements
+## failures 0
+## cut
+package foo;
+
+#-----------------------------------------------------------------------------
+
+## name package OK
+## failures 0
+## cut
+package foo;
+use strict;
+$foo = $bar;
+
+#-----------------------------------------------------------------------------
+
+## name programs can be exempt
+## failures 0
+## parms {exempt_scripts => 1}
+## cut
+#!/usr/bin/perl
+$foo = $bar;
+package foo;
+
+#-----------------------------------------------------------------------------
+
+## name programs not exempted
+## failures 1
+## parms {exempt_scripts => 0}
+## cut
+#!/usr/bin/perl
+use strict;
+use warnings; #this violation will be squelched
+my $foo = 42; #this violation will be squelched
+
+#-----------------------------------------------------------------------------
+
+## name programs not exempted, but we have a package
+## failures 0
+## parms {exempt_scripts => 0}
+## cut
+#!/usr/bin/perl
+package foo;
+$foo = $bar;
+
+#-----------------------------------------------------------------------------
+
+## name Work around a PPI bug that doesn't return a location for C<({})>.
+## failures 1
+## cut
+
+({})
+