select.html

来自「perl教程」· HTML 代码 · 共 353 行 · 第 1/2 页

HTML
353
字号
<?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>podselect - extract selected sections of POD from input</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>podselect - extract selected sections of POD from input</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="#requires">REQUIRES</a></li>
	<li><a href="#exports">EXPORTS</a></li>
	<li><a href="#description">DESCRIPTION</a></li>
	<li><a href="#section_specifications">SECTION SPECIFICATIONS</a></li>
	<li><a href="#range_specifications">RANGE SPECIFICATIONS</a></li>
	<li><a href="#object_methods">OBJECT METHODS</a></li>
	<li><a href="#curr_headings__"><strong>curr_headings()</strong></a></li>
	<li><a href="#select__"><strong>select()</strong></a></li>
	<li><a href="#add_selection__"><strong>add_selection()</strong></a></li>
	<li><a href="#clear_selections__"><strong>clear_selections()</strong></a></li>
	<li><a href="#match_section__"><strong>match_section()</strong></a></li>
	<li><a href="#is_selected__"><strong>is_selected()</strong></a></li>
	<li><a href="#exported_functions">EXPORTED FUNCTIONS</a></li>
	<li><a href="#podselect__"><strong>podselect()</strong></a></li>
	<li><a href="#private_methods_and_data">PRIVATE METHODS AND DATA</a></li>
	<li><a href="#_compile_section_spec__"><strong>_compile_section_spec()</strong></a></li>
	<ul>

		<li><a href="#_self___section_headings_">$self-&gt;{_SECTION_HEADINGS}</a></li>
		<li><a href="#_self___selected_sections_">$self-&gt;{_SELECTED_SECTIONS}</a></li>
	</ul>

	<li><a href="#see_also">SEE ALSO</a></li>
	<li><a href="#author">AUTHOR</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>Pod::Select, <code>podselect()</code> - extract selected sections of POD from input</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
    <span class="keyword">use</span> <span class="variable">Pod::Select</span><span class="operator">;</span>
</pre>
<pre>
    <span class="comment">## Select all the POD sections for each file in @filelist</span>
    <span class="comment">## and print the result on standard output.</span>
    <span class="variable">podselect</span><span class="operator">(</span><span class="variable">@filelist</span><span class="operator">);</span>
</pre>
<pre>
    <span class="comment">## Same as above, but write to tmp.out</span>
    <span class="variable">podselect</span><span class="operator">(</span><span class="operator">{</span><span class="string">-output</span> <span class="operator">=&gt;</span> <span class="string">"tmp.out"</span><span class="operator">}</span><span class="operator">,</span> <span class="variable">@filelist</span><span class="operator">):</span>
</pre>
<pre>
    <span class="comment">## Select from the given filelist, only those POD sections that are</span>
    <span class="comment">## within a 1st level section named any of: NAME, SYNOPSIS, OPTIONS.</span>
    <span class="variable">podselect</span><span class="operator">(</span><span class="operator">{</span><span class="string">-sections</span> <span class="operator">=&gt;</span> <span class="operator">[</span><span class="string">"NAME|SYNOPSIS"</span><span class="operator">,</span> <span class="string">"OPTIONS"</span><span class="operator">]}</span><span class="operator">,</span> <span class="variable">@filelist</span><span class="operator">):</span>
</pre>
<pre>
    <span class="comment">## Select the "DESCRIPTION" section of the PODs from STDIN and write</span>
    <span class="comment">## the result to STDERR.</span>
    <span class="variable">podselect</span><span class="operator">(</span><span class="operator">{</span><span class="string">-output</span> <span class="operator">=&gt;</span> <span class="string">"&gt;&amp;STDERR"</span><span class="operator">,</span> <span class="string">-sections</span> <span class="operator">=&gt;</span> <span class="operator">[</span><span class="string">"DESCRIPTION"</span><span class="operator">]}</span><span class="operator">,</span> <span class="operator">\</span><span class="variable">*STDIN</span><span class="operator">);</span>
</pre>
<p>or</p>
<pre>
    <span class="keyword">use</span> <span class="variable">Pod::Select</span><span class="operator">;</span>
</pre>
<pre>
    <span class="comment">## Create a parser object for selecting POD sections from the input</span>
    <span class="variable">$parser</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">Pod::Select</span><span class="operator">();</span>
</pre>
<pre>
    <span class="comment">## Select all the POD sections for each file in @filelist</span>
    <span class="comment">## and print the result to tmp.out.</span>
    <span class="variable">$parser</span><span class="operator">-&gt;</span><span class="variable">parse_from_file</span><span class="operator">(</span><span class="string">"&lt;&amp;STDIN"</span><span class="operator">,</span> <span class="string">"tmp.out"</span><span class="operator">);</span>
</pre>
<pre>
    <span class="comment">## Select from the given filelist, only those POD sections that are</span>
    <span class="comment">## within a 1st level section named any of: NAME, SYNOPSIS, OPTIONS.</span>
    <span class="variable">$parser</span><span class="operator">-&gt;</span><span class="keyword">select</span><span class="operator">(</span><span class="string">"NAME|SYNOPSIS"</span><span class="operator">,</span> <span class="string">"OPTIONS"</span><span class="operator">);</span>
    <span class="keyword">for</span> <span class="operator">(</span><span class="variable">@filelist</span><span class="operator">)</span> <span class="operator">{</span> <span class="variable">$parser</span><span class="operator">-&gt;</span><span class="variable">parse_from_file</span><span class="operator">(</span><span class="variable">$_</span><span class="operator">);</span> <span class="operator">}</span>
</pre>
<pre>
    <span class="comment">## Select the "DESCRIPTION" and "SEE ALSO" sections of the PODs from</span>
    <span class="comment">## STDIN and write the result to STDERR.</span>
    <span class="variable">$parser</span><span class="operator">-&gt;</span><span class="keyword">select</span><span class="operator">(</span><span class="string">"DESCRIPTION"</span><span class="operator">);</span>
    <span class="variable">$parser</span><span class="operator">-&gt;</span><span class="variable">add_selection</span><span class="operator">(</span><span class="string">"SEE ALSO"</span><span class="operator">);</span>
    <span class="variable">$parser</span><span class="operator">-&gt;</span><span class="variable">parse_from_filehandle</span><span class="operator">(\</span><span class="variable">*STDIN</span><span class="operator">,</span> <span class="operator">\</span><span class="variable">*STDERR</span><span class="operator">);</span>
</pre>
<p>
</p>
<hr />
<h1><a name="requires">REQUIRES</a></h1>
<p>perl5.005, Pod::Parser, Exporter, Carp</p>
<p>
</p>
<hr />
<h1><a name="exports">EXPORTS</a></h1>
<p><code>podselect()</code></p>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p><strong>podselect()</strong> is a function which will extract specified sections of
pod documentation from an input stream. This ability is provided by the
<strong>Pod::Select</strong> module which is a subclass of <strong>Pod::Parser</strong>.
<strong>Pod::Select</strong> provides a method named <strong>select()</strong> to specify the set of
POD sections to select for processing/printing. <strong>podselect()</strong> merely
creates a <strong>Pod::Select</strong> object and then invokes the <strong>podselect()</strong>
followed by <strong>parse_from_file()</strong>.</p>
<p>
</p>
<hr />
<h1><a name="section_specifications">SECTION SPECIFICATIONS</a></h1>
<p><strong>podselect()</strong> and <strong>Pod::Select::select()</strong> may be given one or more
&quot;section specifications&quot; to restrict the text processed to only the
desired set of sections and their corresponding subsections.  A section
specification is a string containing one or more Perl-style regular
expressions separated by forward slashes (&quot;/&quot;).  If you need to use a
forward slash literally within a section title you can escape it with a
backslash (&quot;\/&quot;).</p>
<p>The formal syntax of a section specification is:</p>
<ul>
<li>
<p><em>head1-title-regex</em>/<em>head2-title-regex</em>/...</p>
</li>
</ul>
<p>Any omitted or empty regular expressions will default to &quot;.*&quot;.
Please note that each regular expression given is implicitly
anchored by adding &quot;^&quot; and &quot;$&quot; to the beginning and end.  Also, if a
given regular expression starts with a &quot;!&quot; character, then the
expression is <em>negated</em> (so <code>!foo</code> would match anything <em>except</em>
<code>foo</code>).</p>
<p>Some example section specifications follow.</p>
<ul>
<li>
<p>Match the <a href="../../lib/Pod/perlfunc.html#item_name"><code>NAME</code></a> and <code>SYNOPSIS</code> sections and all of their subsections:</p>
<p><code>NAME|SYNOPSIS</code></p>
</li>
<li>
<p>Match only the <code>Question</code> and <code>Answer</code> subsections of the <code>DESCRIPTION</code>
section:</p>
<p><code>DESCRIPTION/Question|Answer</code></p>
</li>
<li>
<p>Match the <code>Comments</code> subsection of <em>all</em> sections:</p>
<p><code>/Comments</code></p>
</li>
<li>
<p>Match all subsections of <code>DESCRIPTION</code> <em>except</em> for <code>Comments</code>:</p>
<p><code>DESCRIPTION/!Comments</code></p>
</li>
<li>
<p>Match the <code>DESCRIPTION</code> section but do <em>not</em> match any of its subsections:</p>
<p><code>DESCRIPTION/!.+</code></p>

⌨️ 快捷键说明

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