File: RequireExplicitPackage.run

package info (click to toggle)
libperl-critic-perl 1.156-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,544 kB
  • sloc: perl: 24,092; lisp: 341; makefile: 7
file content (151 lines) | stat: -rw-r--r-- 3,339 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
## 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

({})

#-----------------------------------------------------------------------------

## name Allow exception for specific module loads. RT #72660
## failures 0
## parms { allow_import_of => 'utf8' }
## cut

use utf8;

package Foo::Bar;

#-----------------------------------------------------------------------------

## name Allow line 1 version semantics
## failures 0
## cut

use v5.36;

package Foo::Bar;

#-----------------------------------------------------------------------------

## name Allow line 1 version semantics and specific modules
## failures 0
## parms { allow_import_of => 'utf8' }
## cut

use v5.36;
use utf8;

package Foo::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 :