env.html

来自「perl教程」· HTML 代码 · 共 111 行

HTML
111
字号
<?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>Env - perl module that imports environment variables as scalars or arrays</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__',1);</script>
<h1><a>Env - perl module that imports environment variables as scalars or arrays</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="#limitations">LIMITATIONS</a></li>
	<li><a href="#author">AUTHOR</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>Env - perl module that imports environment variables as scalars or arrays</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
    <span class="keyword">use</span> <span class="variable">Env</span><span class="operator">;</span>
    <span class="keyword">use</span> <span class="variable">Env</span> <span class="string">qw(PATH HOME TERM)</span><span class="operator">;</span>
    <span class="keyword">use</span> <span class="variable">Env</span> <span class="string">qw($SHELL @LD_LIBRARY_PATH)</span><span class="operator">;</span>
</pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>Perl maintains environment variables in a special hash named <a href="../lib/Pod/perlvar.html#item__env"><code>%ENV</code></a>.  For
when this access method is inconvenient, the Perl module <code>Env</code> allows
environment variables to be treated as scalar or array variables.</p>
<p>The <a href="../lib/Pod/perlfunc.html#item_import"><code>Env::import()</code></a> function ties environment variables with suitable
names to global Perl variables with the same names.  By default it
ties all existing environment variables (<code>keys %ENV</code>) to scalars.  If
the <a href="../lib/Pod/perlfunc.html#item_import"><code>import</code></a> function receives arguments, it takes them to be a list of
variables to tie; it's okay if they don't yet exist. The scalar type
prefix '$' is inferred for any element of this list not prefixed by '$'
or '@'. Arrays are implemented in terms of <a href="../lib/Pod/perlfunc.html#item_split"><code>split</code></a> and <a href="../lib/Pod/perlfunc.html#item_join"><code>join</code></a>, using
<code>$Config::Config{path_sep}</code> as the delimiter.</p>
<p>After an environment variable is tied, merely use it like a normal variable.
You may access its value</p>
<pre>
    <span class="variable">@path</span> <span class="operator">=</span> <span class="keyword">split</span><span class="operator">(</span><span class="regex">/:/</span><span class="operator">,</span> <span class="variable">$PATH</span><span class="operator">);</span>
    <span class="keyword">print</span> <span class="keyword">join</span><span class="operator">(</span><span class="string">"\n"</span><span class="operator">,</span> <span class="variable">@LD_LIBRARY_PATH</span><span class="operator">),</span> <span class="string">"\n"</span><span class="operator">;</span>
</pre>
<p>or modify it</p>
<pre>
    <span class="variable">$PATH</span> <span class="operator">.=</span> <span class="string">":."</span><span class="operator">;</span>
    <span class="keyword">push</span> <span class="variable">@LD_LIBRARY_PATH</span><span class="operator">,</span> <span class="variable">$dir</span><span class="operator">;</span>
</pre>
<p>however you'd like. Bear in mind, however, that each access to a tied array
variable requires splitting the environment variable's string anew.</p>
<p>The code:</p>
<pre>
    <span class="keyword">use</span> <span class="variable">Env</span> <span class="string">qw(@PATH)</span><span class="operator">;</span>
    <span class="keyword">push</span> <span class="variable">@PATH</span><span class="operator">,</span> <span class="string">'.'</span><span class="operator">;</span>
</pre>
<p>is equivalent to:</p>
<pre>
    <span class="keyword">use</span> <span class="variable">Env</span> <span class="string">qw(PATH)</span><span class="operator">;</span>
    <span class="variable">$PATH</span> <span class="operator">.=</span> <span class="string">":."</span><span class="operator">;</span>
</pre>
<p>except that if <code>$ENV{PATH}</code> started out empty, the second approach leaves
it with the (odd) value &quot;<code>:.</code>&quot;, but the first approach leaves it with &quot;<code>.</code>&quot;.</p>
<p>To remove a tied environment variable from
the environment, assign it the undefined value</p>
<pre>
    <span class="keyword">undef</span> <span class="variable">$PATH</span><span class="operator">;</span>
    <span class="keyword">undef</span> <span class="variable">@LD_LIBRARY_PATH</span><span class="operator">;</span>
</pre>
<p>
</p>
<hr />
<h1><a name="limitations">LIMITATIONS</a></h1>
<p>On VMS systems, arrays tied to environment variables are read-only. Attempting
to change anything will cause a warning.</p>
<p>
</p>
<hr />
<h1><a name="author">AUTHOR</a></h1>
<p>Chip Salzenberg &lt;<em><a href="mailto:chip@fin.uucp">chip@fin.uucp</a></em>&gt;
and
Gregor N. Purdy &lt;<em><a href="mailto:gregor@focusresearch.com">gregor@focusresearch.com</a></em>&gt;</p>

</body>

</html>

⌨️ 快捷键说明

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