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 "<code>:.</code>", but the first approach leaves it with "<code>.</code>".</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 <<em><a href="mailto:chip@fin.uucp">chip@fin.uucp</a></em>>
and
Gregor N. Purdy <<em><a href="mailto:gregor@focusresearch.com">gregor@focusresearch.com</a></em>></p>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?