⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lint.html

📁 perl教程
💻 HTML
字号:
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>B::Lint - Perl lint</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>

<body>

<script>writelinks('__top__',2);</script>
<h1><a>B::Lint - Perl lint</a></h1>
<p><a name="__index__"></a></p>

<!-- INDEX BEGIN -->

<ul>

	<li><a href="#name">NAME</a></li>
	<li><a href="#synopsis">SYNOPSIS</a></li>
	<li><a href="#description">DESCRIPTION</a></li>
	<li><a href="#options_and_lint_checks">OPTIONS AND LINT CHECKS</a></li>
	<li><a href="#non_lintcheck_options">NON LINT-CHECK OPTIONS</a></li>
	<li><a href="#bugs">BUGS</a></li>
	<li><a href="#author">AUTHOR</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>B::Lint - Perl lint</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<p>perl -MO=Lint[,OPTIONS] foo.pl</p>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>The B::Lint module is equivalent to an extended version of the <strong>-w</strong>
option of <strong>perl</strong>. It is named after the program <em>lint</em> which carries
out a similar process for C programs.</p>
<p>
</p>
<hr />
<h1><a name="options_and_lint_checks">OPTIONS AND LINT CHECKS</a></h1>
<p>Option words are separated by commas (not whitespace) and follow the
usual conventions of compiler backend options. Following any options
(indicated by a leading <strong>-</strong>) come lint check arguments. Each such
argument (apart from the special <strong>all</strong> and <strong>none</strong> options) is a
word representing one possible lint check (turning on that check) or
is <strong>no-foo</strong> (turning off that check). Before processing the check
arguments, a standard list of checks is turned on. Later options
override earlier ones. Available options are:</p>
<dl>
<dt><strong><a name="item_context"><strong>context</strong></a></strong>

<dd>
<p>Produces a warning whenever an array is used in an implicit scalar
context. For example, both of the lines</p>
</dd>
<dd>
<pre>
    <span class="variable">$foo</span> <span class="operator">=</span> <span class="keyword">length</span><span class="operator">(</span><span class="variable">@bar</span><span class="operator">);</span>
    <span class="variable">$foo</span> <span class="operator">=</span> <span class="variable">@bar</span><span class="operator">;</span>
</pre>
</dd>
<dd>
<p>will elicit a warning. Using an explicit <strong>scalar()</strong> silences the
warning. For example,</p>
</dd>
<dd>
<pre>
    <span class="variable">$foo</span> <span class="operator">=</span> <span class="keyword">scalar</span><span class="operator">(</span><span class="variable">@bar</span><span class="operator">);</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_implicit_2dread_and_implicit_2dwrite"><strong>implicit-read</strong> and <strong>implicit-write</strong></a></strong>

<dd>
<p>These options produce a warning whenever an operation implicitly
reads or (respectively) writes to one of Perl's special variables.
For example, <strong>implicit-read</strong> will warn about these:</p>
</dd>
<dd>
<pre>
    <span class="regex">/foo/</span><span class="operator">;</span>
</pre>
</dd>
<dd>
<p>and <strong>implicit-write</strong> will warn about these:</p>
</dd>
<dd>
<pre>
    <span class="regex">s/foo/bar/</span><span class="operator">;</span>
</pre>
</dd>
<dd>
<p>Both <strong>implicit-read</strong> and <strong>implicit-write</strong> warn about this:</p>
</dd>
<dd>
<pre>
    <span class="keyword">for</span> <span class="operator">(</span><span class="variable">@a</span><span class="operator">)</span> <span class="operator">{</span> <span class="operator">...</span> <span class="operator">}</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_bare_2dsubs"><strong>bare-subs</strong></a></strong>

<dd>
<p>This option warns whenever a bareword is implicitly quoted, but is also
the name of a subroutine in the current package. Typical mistakes that it will
trap are:</p>
</dd>
<dd>
<pre>
    <span class="keyword">use</span> <span class="variable">constant</span> <span class="string">foo</span> <span class="operator">=&gt;</span> <span class="string">'bar'</span><span class="operator">;</span>
    <span class="variable">@a</span> <span class="operator">=</span> <span class="operator">(</span> <span class="string">foo</span> <span class="operator">=&gt;</span> <span class="number">1</span> <span class="operator">);</span>
    <span class="variable">$b</span><span class="operator">{</span><span class="string">foo</span><span class="operator">}</span> <span class="operator">=</span> <span class="number">2</span><span class="operator">;</span>
</pre>
</dd>
<dd>
<p>Neither of these will do what a naive user would expect.</p>
</dd>
</li>
<dt><strong><a name="item_dollar_2dunderscore"><strong>dollar-underscore</strong></a></strong>

<dd>
<p>This option warns whenever <a href="../../lib/Pod/perlvar.html#item___"><code>$_</code></a> is used either explicitly anywhere or
as the implicit argument of a <strong>print</strong> statement.</p>
</dd>
</li>
<dt><strong><a name="item_private_2dnames"><strong>private-names</strong></a></strong>

<dd>
<p>This option warns on each use of any variable, subroutine or
method name that lives in a non-current package but begins with
an underscore (&quot;_&quot;). Warnings aren't issued for the special case
of the single character name &quot;_&quot; by itself (e.g. <a href="../../lib/Pod/perlvar.html#item___"><code>$_</code></a> and <a href="../../lib/Pod/perlvar.html#item___"><code>@_</code></a>).</p>
</dd>
</li>
<dt><strong><a name="item_undefined_2dsubs"><strong>undefined-subs</strong></a></strong>

<dd>
<p>This option warns whenever an undefined subroutine is invoked.
This option will only catch explicitly invoked subroutines such
as <code>foo()</code> and not indirect invocations such as <code>&amp;$subref()</code>
or <code>$obj-&gt;meth()</code>. Note that some programs or modules delay
definition of subs until runtime by means of the AUTOLOAD
mechanism.</p>
</dd>
</li>
<dt><strong><a name="item_regexp_2dvariables"><strong>regexp-variables</strong></a></strong>

<dd>
<p>This option warns whenever one of the regexp variables <a href="../../lib/Pod/perlvar.html#item___"><code>$`</code></a>, <a href="../../lib/Pod/perlvar.html#item___"><code>$&amp;</code></a> or <a href="../../lib/Pod/perlvar.html#item___"><code>$'</code></a>
is used. Any occurrence of any of these variables in your
program can slow your whole program down. See <a href="../../lib/Pod/perlre.html">the perlre manpage</a> for
details.</p>
</dd>
</li>
<dt><strong><a name="item_all"><strong>all</strong></a></strong>

<dd>
<p>Turn all warnings on.</p>
</dd>
</li>
<dt><strong><a name="item_none"><strong>none</strong></a></strong>

<dd>
<p>Turn all warnings off.</p>
</dd>
</li>
</dl>
<p>
</p>
<hr />
<h1><a name="non_lintcheck_options">NON LINT-CHECK OPTIONS</a></h1>
<dl>
<dt><strong><a name="item__2du_package"><strong>-u Package</strong></a></strong>

<dd>
<p>Normally, Lint only checks the main code of the program together
with all subs defined in package main. The <strong>-u</strong> option lets you
include other package names whose subs are then checked by Lint.</p>
</dd>
</li>
</dl>
<p>
</p>
<hr />
<h1><a name="bugs">BUGS</a></h1>
<p>This is only a very preliminary version.</p>
<p>This module doesn't work correctly on thread-enabled perls.</p>
<p>
</p>
<hr />
<h1><a name="author">AUTHOR</a></h1>
<p>Malcolm Beattie, <a href="mailto:mbeattie@sable.ox.ac.uk.">mbeattie@sable.ox.ac.uk.</a></p>

</body>

</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -