Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / v8plus / man / man3 / B::Lint.3
CommitLineData
920dae64
AT
1.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "B::Lint 3"
132.TH B::Lint 3 "2001-09-21" "perl v5.8.8" "Perl Programmers Reference Guide"
133.SH "NAME"
134B::Lint \- Perl lint
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137perl \-MO=Lint[,OPTIONS] foo.pl
138.SH "DESCRIPTION"
139.IX Header "DESCRIPTION"
140The B::Lint module is equivalent to an extended version of the \fB\-w\fR
141option of \fBperl\fR. It is named after the program \fIlint\fR which carries
142out a similar process for C programs.
143.SH "OPTIONS AND LINT CHECKS"
144.IX Header "OPTIONS AND LINT CHECKS"
145Option words are separated by commas (not whitespace) and follow the
146usual conventions of compiler backend options. Following any options
147(indicated by a leading \fB\-\fR) come lint check arguments. Each such
148argument (apart from the special \fBall\fR and \fBnone\fR options) is a
149word representing one possible lint check (turning on that check) or
150is \fBno-foo\fR (turning off that check). Before processing the check
151arguments, a standard list of checks is turned on. Later options
152override earlier ones. Available options are:
153.IP "\fBcontext\fR" 8
154.IX Item "context"
155Produces a warning whenever an array is used in an implicit scalar
156context. For example, both of the lines
157.Sp
158.Vb 2
159\& $foo = length(@bar);
160\& $foo = @bar;
161.Ve
162.Sp
163will elicit a warning. Using an explicit \fB\f(BIscalar()\fB\fR silences the
164warning. For example,
165.Sp
166.Vb 1
167\& $foo = scalar(@bar);
168.Ve
169.IP "\fBimplicit-read\fR and \fBimplicit-write\fR" 8
170.IX Item "implicit-read and implicit-write"
171These options produce a warning whenever an operation implicitly
172reads or (respectively) writes to one of Perl's special variables.
173For example, \fBimplicit-read\fR will warn about these:
174.Sp
175.Vb 1
176\& /foo/;
177.Ve
178.Sp
179and \fBimplicit-write\fR will warn about these:
180.Sp
181.Vb 1
182\& s/foo/bar/;
183.Ve
184.Sp
185Both \fBimplicit-read\fR and \fBimplicit-write\fR warn about this:
186.Sp
187.Vb 1
188\& for (@a) { ... }
189.Ve
190.IP "\fBbare-subs\fR" 8
191.IX Item "bare-subs"
192This option warns whenever a bareword is implicitly quoted, but is also
193the name of a subroutine in the current package. Typical mistakes that it will
194trap are:
195.Sp
196.Vb 3
197\& use constant foo => 'bar';
198\& @a = ( foo => 1 );
199\& $b{foo} = 2;
200.Ve
201.Sp
202Neither of these will do what a naive user would expect.
203.IP "\fBdollar-underscore\fR" 8
204.IX Item "dollar-underscore"
205This option warns whenever \f(CW$_\fR is used either explicitly anywhere or
206as the implicit argument of a \fBprint\fR statement.
207.IP "\fBprivate-names\fR" 8
208.IX Item "private-names"
209This option warns on each use of any variable, subroutine or
210method name that lives in a non-current package but begins with
211an underscore (\*(L"_\*(R"). Warnings aren't issued for the special case
212of the single character name \*(L"_\*(R" by itself (e.g. \f(CW$_\fR and \f(CW@_\fR).
213.IP "\fBundefined-subs\fR" 8
214.IX Item "undefined-subs"
215This option warns whenever an undefined subroutine is invoked.
216This option will only catch explicitly invoked subroutines such
217as \f(CW\*(C`foo()\*(C'\fR and not indirect invocations such as \f(CW\*(C`&$subref()\*(C'\fR
218or \f(CW\*(C`$obj\->meth()\*(C'\fR. Note that some programs or modules delay
219definition of subs until runtime by means of the \s-1AUTOLOAD\s0
220mechanism.
221.IP "\fBregexp-variables\fR" 8
222.IX Item "regexp-variables"
223This option warns whenever one of the regexp variables \f(CW$`\fR, \f(CW$&\fR or \f(CW$'\fR
224is used. Any occurrence of any of these variables in your
225program can slow your whole program down. See perlre for
226details.
227.IP "\fBall\fR" 8
228.IX Item "all"
229Turn all warnings on.
230.IP "\fBnone\fR" 8
231.IX Item "none"
232Turn all warnings off.
233.SH "NON LINT-CHECK OPTIONS"
234.IX Header "NON LINT-CHECK OPTIONS"
235.IP "\fB\-u Package\fR" 8
236.IX Item "-u Package"
237Normally, Lint only checks the main code of the program together
238with all subs defined in package main. The \fB\-u\fR option lets you
239include other package names whose subs are then checked by Lint.
240.SH "BUGS"
241.IX Header "BUGS"
242This is only a very preliminary version.
243.PP
244This module doesn't work correctly on thread-enabled perls.
245.SH "AUTHOR"
246.IX Header "AUTHOR"
247Malcolm Beattie, mbeattie@sable.ox.ac.uk.